mirror of https://github.com/VueTubeApp/VueTube
98 lines
3.6 KiB
Java
98 lines
3.6 KiB
Java
/*
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*
|
|
*/
|
|
|
|
package cordova.plugins.screenorientation;
|
|
|
|
import org.apache.cordova.CallbackContext;
|
|
import org.apache.cordova.CordovaPlugin;
|
|
|
|
import org.json.JSONArray;
|
|
import org.json.JSONException;
|
|
|
|
import android.app.Activity;
|
|
import android.content.pm.ActivityInfo;
|
|
import android.util.Log;
|
|
|
|
public class CDVOrientation extends CordovaPlugin {
|
|
|
|
private static final String TAG = "YoikScreenOrientation";
|
|
|
|
/**
|
|
* Screen Orientation Constants
|
|
*/
|
|
|
|
private static final String ANY = "any";
|
|
private static final String PORTRAIT_PRIMARY = "portrait-primary";
|
|
private static final String PORTRAIT_SECONDARY = "portrait-secondary";
|
|
private static final String LANDSCAPE_PRIMARY = "landscape-primary";
|
|
private static final String LANDSCAPE_SECONDARY = "landscape-secondary";
|
|
private static final String PORTRAIT = "portrait";
|
|
private static final String LANDSCAPE = "landscape";
|
|
|
|
@Override
|
|
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
|
|
|
|
Log.d(TAG, "execute action: " + action);
|
|
|
|
// Route the Action
|
|
if (action.equals("screenOrientation")) {
|
|
return routeScreenOrientation(args, callbackContext);
|
|
}
|
|
|
|
// Action not found
|
|
callbackContext.error("action not recognised");
|
|
return false;
|
|
}
|
|
|
|
private boolean routeScreenOrientation(JSONArray args, CallbackContext callbackContext) {
|
|
|
|
String action = args.optString(0);
|
|
|
|
|
|
|
|
String orientation = args.optString(1);
|
|
|
|
Log.d(TAG, "Requested ScreenOrientation: " + orientation);
|
|
|
|
Activity activity = cordova.getActivity();
|
|
|
|
if (orientation.equals(ANY)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
|
|
} else if (orientation.equals(LANDSCAPE_PRIMARY)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
|
} else if (orientation.equals(PORTRAIT_PRIMARY)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
|
} else if (orientation.equals(LANDSCAPE)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
|
|
} else if (orientation.equals(PORTRAIT)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
|
|
} else if (orientation.equals(LANDSCAPE_SECONDARY)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
|
|
} else if (orientation.equals(PORTRAIT_SECONDARY)) {
|
|
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
|
|
}
|
|
|
|
callbackContext.success();
|
|
return true;
|
|
|
|
|
|
}
|
|
} |