diff options
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/volume/ZenToast.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/volume/ZenToast.java | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenToast.java b/packages/SystemUI/src/com/android/systemui/volume/ZenToast.java deleted file mode 100644 index d887712..0000000 --- a/packages/SystemUI/src/com/android/systemui/volume/ZenToast.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * 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.android.systemui.volume; - -import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS; -import static android.provider.Settings.Global.ZEN_MODE_NO_INTERRUPTIONS; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Resources; -import android.graphics.PixelFormat; -import android.os.Handler; -import android.os.Message; -import android.os.UserHandle; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnAttachStateChangeListener; -import android.view.WindowManager; -import android.widget.ImageView; -import android.widget.TextView; - -import com.android.systemui.R; - -public class ZenToast { - private static final String ACTION_SHOW = ZenToast.class.getName() + ".SHOW"; - private static final String ACTION_HIDE = ZenToast.class.getName() + ".HIDE"; - private static final String EXTRA_ZEN = "zen"; - private static final String EXTRA_TEXT = "text"; - - private static final int MSG_SHOW = 1; - private static final int MSG_HIDE = 2; - - private final Context mContext; - private final WindowManager mWindowManager; - - private View mZenToast; - - public ZenToast(Context context) { - mContext = context; - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - final IntentFilter filter = new IntentFilter(); - filter.addAction(ACTION_SHOW); - filter.addAction(ACTION_HIDE); - mContext.registerReceiverAsUser(mReceiver, UserHandle.ALL, filter, null, mHandler); - } - - public void show(int zen) { - mHandler.removeMessages(MSG_HIDE); - mHandler.removeMessages(MSG_SHOW); - mHandler.obtainMessage(MSG_SHOW, zen, 0).sendToTarget(); - } - - public void hide() { - mHandler.removeMessages(MSG_HIDE); - mHandler.removeMessages(MSG_SHOW); - mHandler.obtainMessage(MSG_HIDE).sendToTarget(); - } - - private void handleShow(int zen, String overrideText) { - handleHide(); - - String text; - final int iconRes; - switch (zen) { - case ZEN_MODE_NO_INTERRUPTIONS: - text = mContext.getString(R.string.zen_no_interruptions); - iconRes = R.drawable.ic_zen_none; - break; - case ZEN_MODE_IMPORTANT_INTERRUPTIONS: - text = mContext.getString(R.string.zen_important_interruptions); - iconRes = R.drawable.ic_zen_important; - break; - default: - return; - } - if (overrideText != null) { - text = overrideText; - } - final Resources res = mContext.getResources(); - final WindowManager.LayoutParams params = new WindowManager.LayoutParams(); - params.height = WindowManager.LayoutParams.WRAP_CONTENT; - params.width = res.getDimensionPixelSize(R.dimen.zen_toast_width); - params.format = PixelFormat.TRANSLUCENT; - params.windowAnimations = R.style.ZenToastAnimations; - params.type = WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL; - params.setTitle(getClass().getSimpleName()); - params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON - | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE - | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; - params.gravity = Gravity.CENTER; - params.packageName = mContext.getPackageName(); - mZenToast = LayoutInflater.from(mContext).inflate(R.layout.zen_toast, null); - final TextView message = (TextView) mZenToast.findViewById(android.R.id.message); - message.setText(text); - final ImageView icon = (ImageView) mZenToast.findViewById(android.R.id.icon); - icon.setImageResource(iconRes); - mZenToast.addOnAttachStateChangeListener(new OnAttachStateChangeListener() { - @Override - public void onViewDetachedFromWindow(View v) { - // noop - } - - @Override - public void onViewAttachedToWindow(View v) { - mZenToast.announceForAccessibility(message.getText()); - } - }); - mWindowManager.addView(mZenToast, params); - final int animDuration = res.getInteger(R.integer.zen_toast_animation_duration); - final int visibleDuration = res.getInteger(R.integer.zen_toast_visible_duration); - mHandler.sendEmptyMessageDelayed(MSG_HIDE, animDuration + visibleDuration); - } - - private void handleHide() { - if (mZenToast != null) { - mWindowManager.removeView(mZenToast); - mZenToast = null; - } - } - - private final Handler mHandler = new Handler() { - public void handleMessage(Message msg) { - switch (msg.what) { - case MSG_SHOW: - handleShow(msg.arg1, null); - break; - case MSG_HIDE: - handleHide(); - break; - } - } - }; - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (ACTION_SHOW.equals(intent.getAction())) { - final int zen = intent.getIntExtra(EXTRA_ZEN, ZEN_MODE_IMPORTANT_INTERRUPTIONS); - final String text = intent.getStringExtra(EXTRA_TEXT); - handleShow(zen, text); - } else if (ACTION_HIDE.equals(intent.getAction())) { - handleHide(); - } - } - }; -} |