/* * Copyright (C) 2014 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.example.android.apprestrictionschema; import android.content.Context; import android.content.RestrictionsManager; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.example.android.common.logger.Log; /** * Pressing the button on this fragment pops up a simple Toast message. The button is enabled or * disabled according to the restrictions set by device/profile owner. You can use the * AppRestrictionEnforcer sample as a profile owner for this. */ public class AppRestrictionSchemaFragment extends Fragment implements View.OnClickListener { // Tag for the logger private static final String TAG = "AppRestrictionSchemaFragment"; // UI Components private TextView mTextSayHello; private Button mButtonSayHello; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_app_restriction_schema, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { mTextSayHello = (TextView) view.findViewById(R.id.say_hello_explanation); mButtonSayHello = (Button) view.findViewById(R.id.say_hello); mButtonSayHello.setOnClickListener(this); } @Override public void onResume() { super.onResume(); // Update the UI according to the configured restrictions RestrictionsManager restrictionsManager = (RestrictionsManager) getActivity().getSystemService(Context.RESTRICTIONS_SERVICE); Bundle restrictions = restrictionsManager.getApplicationRestrictions(); updateUI(restrictions); } private void updateUI(Bundle restrictions) { if (canSayHello(restrictions)) { mTextSayHello.setText(R.string.explanation_can_say_hello_true); mButtonSayHello.setEnabled(true); } else { mTextSayHello.setText(R.string.explanation_can_say_hello_false); mButtonSayHello.setEnabled(false); } } /** * Returns the current status of the restriction. * * @param restrictions The application restrictions * @return True if the app is allowed to say hello */ private boolean canSayHello(Bundle restrictions) { final boolean defaultValue = false; boolean canSayHello = restrictions == null ? defaultValue : restrictions.getBoolean("can_say_hello", defaultValue); Log.d(TAG, "canSayHello: " + canSayHello); return canSayHello; } @Override public void onClick(View view) { switch (view.getId()) { case R.id.say_hello: { Toast.makeText(getActivity(), R.string.message_hello, Toast.LENGTH_SHORT).show(); break; } } } }