VancedMicroG/play-services-core/src/main/java/org/microg/gms/ui/AskPushPermission.java

65 lines
1.9 KiB
Java
Raw Normal View History

package org.microg.gms.ui;
2020-10-15 23:16:59 +00:00
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
2020-10-15 23:16:59 +00:00
import android.os.ResultReceiver;
import android.text.Html;
import android.widget.TextView;
2020-07-08 18:04:23 +00:00
import androidx.fragment.app.FragmentActivity;
2020-07-16 00:24:57 +00:00
import com.mgoogle.android.gms.R;
import org.microg.gms.gcm.GcmDatabase;
import org.microg.gms.gcm.PushRegisterService;
import static org.microg.gms.gcm.GcmConstants.EXTRA_APP;
import static org.microg.gms.gcm.GcmConstants.EXTRA_KID;
import static org.microg.gms.gcm.GcmConstants.EXTRA_PENDING_INTENT;
public class AskPushPermission extends FragmentActivity {
2020-10-15 23:16:59 +00:00
public static final String EXTRA_REQUESTED_PACKAGE = "package";
public static final String EXTRA_RESULT_RECEIVER = "receiver";
public static final String EXTRA_EXPLICIT = "explicit";
private GcmDatabase database;
private String packageName;
2020-10-15 23:16:59 +00:00
private ResultReceiver resultReceiver;
private boolean answered;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
database = new GcmDatabase(this);
2020-10-15 23:16:59 +00:00
packageName = getIntent().getStringExtra(EXTRA_REQUESTED_PACKAGE);
resultReceiver = getIntent().getParcelableExtra(EXTRA_RESULT_RECEIVER);
if (packageName == null || resultReceiver == null) {
answered = true;
finish();
return;
}
if (database.getApp(packageName) != null) {
2020-10-15 23:16:59 +00:00
resultReceiver.send(Activity.RESULT_OK, Bundle.EMPTY);
answered = true;
finish();
return;
}
}
@Override
2020-07-08 18:04:23 +00:00
protected void onDestroy() {
super.onDestroy();
if (!answered) {
2020-10-15 23:16:59 +00:00
resultReceiver.send(Activity.RESULT_CANCELED, Bundle.EMPTY);
}
database.close();
}
}