blob: 7f722fdf935c04ebc8a0222e3f503077a2c9f569 [file] [log] [blame]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed 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 com.android.messaging.util;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.UserManager;
import android.text.TextUtils;
import com.android.messaging.Factory;
import com.android.messaging.R;
import com.android.messaging.datamodel.DataModel;
import com.android.messaging.ui.conversation.ConversationActivity;
import com.android.messaging.ui.conversationlist.ConversationListActivity;
/**
* Utility class including logic to verify requirements to run Bugle and other activity startup
* logic. Called from base Bugle activity classes.
*/
public class BugleActivityUtil {
private static final int REQUEST_GOOGLE_PLAY_SERVICES = 0;
/**
* Determine if the requirements for the app to run are met. Log any Activity startup
* analytics.
* @param context
* @param activity is used to launch an error Dialog if necessary
* @return true if resume should continue normally. Returns false if some requirements to run
* are not met.
*/
public static boolean onActivityResume(Context context, Activity activity) {
DataModel.get().onActivityResume();
Factory.get().onActivityResume();
// Validate all requirements to run are met
return checkHasSmsPermissionsForUser(context, activity);
}
/**
* Determine if the user doesn't have SMS permissions. This can happen if you are not the phone
* owner and the owner has disabled your SMS permissions.
* @param context is the Context used to resolve the user permissions
* @param activity is the Activity used to launch an error Dialog if necessary
* @return true if the user has SMS permissions, otherwise false.
*/
private static boolean checkHasSmsPermissionsForUser(Context context, Activity activity) {
if (!OsUtil.isAtLeastL()) {
// UserManager.DISALLOW_SMS added in L. No multiuser phones before this
return true;
}
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
if (userManager.hasUserRestriction(UserManager.DISALLOW_SMS)) {
new AlertDialog.Builder(activity)
.setMessage(R.string.requires_sms_permissions_message)
.setCancelable(false)
.setNegativeButton(R.string.requires_sms_permissions_close_button,
new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog,
final int button) {
System.exit(0);
}
})
.show();
return false;
}
return true;
}
}