api(runtime): runtime.requestPermissions()
This commit is contained in:
@@ -13,6 +13,11 @@
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
|
||||
|
||||
<!-- 非Auto.js运行必需,不会主动申请,某些脚本可以自行申请-->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
||||
|
||||
<!-- Ad SDK Permissions -->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
||||
|
||||
|
||||
@@ -9,7 +9,11 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.stardust.app.OnActivityResultDelegate;
|
||||
import com.stardust.autojs.core.permission.OnRequestPermissionsResultCallback;
|
||||
import com.stardust.autojs.core.permission.PermissionRequestProxyActivity;
|
||||
import com.stardust.autojs.core.permission.RequestPermissionCallbacks;
|
||||
import com.stardust.pio.PFiles;
|
||||
|
||||
import org.autojs.autojs.R;
|
||||
import org.autojs.autojs.storage.file.TmpScriptFiles;
|
||||
import org.autojs.autojs.ui.BaseActivity;
|
||||
@@ -35,7 +39,7 @@ import static org.autojs.autojs.ui.edit.EditorView.EXTRA_READ_ONLY;
|
||||
* Created by Stardust on 2017/1/29.
|
||||
*/
|
||||
@EActivity(R.layout.activity_edit)
|
||||
public class EditActivity extends BaseActivity implements OnActivityResultDelegate.DelegateHost {
|
||||
public class EditActivity extends BaseActivity implements OnActivityResultDelegate.DelegateHost, PermissionRequestProxyActivity {
|
||||
|
||||
private OnActivityResultDelegate.Mediator mMediator = new OnActivityResultDelegate.Mediator();
|
||||
|
||||
@@ -44,6 +48,7 @@ public class EditActivity extends BaseActivity implements OnActivityResultDelega
|
||||
|
||||
|
||||
private EditorMenu mEditorMenu;
|
||||
private RequestPermissionCallbacks mRequestPermissionCallbacks = new RequestPermissionCallbacks();
|
||||
|
||||
public static void editFile(Context context, String path) {
|
||||
editFile(context, null, path);
|
||||
@@ -192,4 +197,19 @@ public class EditActivity extends BaseActivity implements OnActivityResultDelega
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addRequestPermissionsCallback(OnRequestPermissionsResultCallback callback) {
|
||||
mRequestPermissionCallbacks.addCallback(callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeRequestPermissionsCallback(OnRequestPermissionsResultCallback callback) {
|
||||
return mRequestPermissionCallbacks.removeCallback(callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
mRequestPermissionCallbacks.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,12 @@ import android.view.View;
|
||||
|
||||
import com.stardust.app.FragmentPagerAdapterBuilder;
|
||||
import com.stardust.app.OnActivityResultDelegate;
|
||||
import com.stardust.autojs.core.permission.OnRequestPermissionsResultCallback;
|
||||
import com.stardust.autojs.core.permission.PermissionRequestProxyActivity;
|
||||
import com.stardust.autojs.core.permission.RequestPermissionCallbacks;
|
||||
import com.stardust.enhancedfloaty.FloatyService;
|
||||
import com.stardust.pio.PFiles;
|
||||
|
||||
import org.autojs.autojs.BuildConfig;
|
||||
import org.autojs.autojs.Pref;
|
||||
import org.autojs.autojs.R;
|
||||
@@ -42,8 +46,11 @@ import org.autojs.autojs.ui.settings.SettingsActivity_;
|
||||
import org.autojs.autojs.ui.update.VersionGuard;
|
||||
import org.autojs.autojs.ui.widget.CommonMarkdownView;
|
||||
import org.autojs.autojs.ui.widget.SearchViewItem;
|
||||
|
||||
import com.stardust.theme.ThemeColorManager;
|
||||
|
||||
import org.autojs.autojs.theme.dialog.ThemeColorMaterialDialogBuilder;
|
||||
|
||||
import com.stardust.util.BackPressedHandler;
|
||||
import com.stardust.util.DeveloperUtils;
|
||||
import com.stardust.util.DrawerAutoClose;
|
||||
@@ -58,7 +65,8 @@ import org.greenrobot.eventbus.Subscribe;
|
||||
import java.util.Arrays;
|
||||
|
||||
@EActivity(R.layout.activity_main)
|
||||
public class MainActivity extends BaseActivity implements OnActivityResultDelegate.DelegateHost, BackPressedHandler.HostActivity {
|
||||
public class MainActivity extends BaseActivity implements OnActivityResultDelegate.DelegateHost, BackPressedHandler.HostActivity, PermissionRequestProxyActivity {
|
||||
|
||||
|
||||
public static class DrawerOpenEvent {
|
||||
static DrawerOpenEvent SINGLETON = new DrawerOpenEvent();
|
||||
@@ -77,6 +85,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
|
||||
private FragmentPagerAdapterBuilder.StoredFragmentPagerAdapter mPagerAdapter;
|
||||
private OnActivityResultDelegate.Mediator mActivityResultMediator = new OnActivityResultDelegate.Mediator();
|
||||
private RequestPermissionCallbacks mRequestPermissionCallbacks = new RequestPermissionCallbacks();
|
||||
private VersionGuard mVersionGuard;
|
||||
private BackPressedHandler.Observer mBackPressObserver = new BackPressedHandler.Observer();
|
||||
private SearchViewItem mSearchViewItem;
|
||||
@@ -228,6 +237,9 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (mRequestPermissionCallbacks.onRequestPermissionsResult(requestCode, permissions, grantResults)) {
|
||||
return;
|
||||
}
|
||||
if (getGrantResult(Manifest.permission.READ_EXTERNAL_STORAGE, permissions, grantResults) == PackageManager.PERMISSION_GRANTED) {
|
||||
StorageFileProvider.getDefault().notifyStoragePermissionGranted();
|
||||
}
|
||||
@@ -275,6 +287,17 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addRequestPermissionsCallback(OnRequestPermissionsResultCallback callback) {
|
||||
mRequestPermissionCallbacks.addCallback(callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeRequestPermissionsCallback(OnRequestPermissionsResultCallback callback) {
|
||||
return mRequestPermissionCallbacks.removeCallback(callback);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BackPressedHandler.Observer getBackPressedObserver() {
|
||||
return mBackPressObserver;
|
||||
@@ -289,6 +312,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.action_log) {
|
||||
|
||||
Reference in New Issue
Block a user