From 6883e39d778535950b80861ca04eeec79a3e9763 Mon Sep 17 00:00:00 2001 From: Jackson Hsu Date: Thu, 29 Dec 2011 10:13:03 +0800 Subject: [PATCH] Implement poweroff function in Settings menu Bugzilla 8729 13343 Add "Power Off" layout under "About tablet" in Settings menu. System can shutdown when you touch "ok", otherwise back to home screen. Change-Id: I1c572dca93203e02dd829247d20806a43966e64f Signed-off-by: Jackson Hsu --- AndroidManifest.xml | 10 +++ proguard.flags | 1 + res/drawable-hdpi/ic_settings_poweroff.png | Bin 0 -> 953 bytes res/drawable-mdpi/ic_settings_poweroff.png | Bin 0 -> 797 bytes res/values-ar/strings.xml | 1 + res/values-bg/strings.xml | 1 + res/values-ca/strings.xml | 1 + res/values-cs/strings.xml | 1 + res/values-da/strings.xml | 1 + res/values-de/strings.xml | 1 + res/values-el/strings.xml | 1 + res/values-en-rGB/strings.xml | 1 + res/values-es-rUS/strings.xml | 1 + res/values-es/strings.xml | 1 + res/values-fa/strings.xml | 1 + res/values-fi/strings.xml | 1 + res/values-fr/strings.xml | 1 + res/values-hr/strings.xml | 1 + res/values-hu/strings.xml | 1 + res/values-in/strings.xml | 1 + res/values-it/strings.xml | 1 + res/values-iw/strings.xml | 1 + res/values-ja/strings.xml | 1 + res/values-ko/strings.xml | 1 + res/values-lt/strings.xml | 1 + res/values-lv/strings.xml | 1 + res/values-nb/strings.xml | 1 + res/values-nl/strings.xml | 1 + res/values-pl/strings.xml | 1 + res/values-pt-rPT/strings.xml | 1 + res/values-pt/strings.xml | 1 + res/values-rm/strings.xml | 1 + res/values-ro/strings.xml | 1 + res/values-ru/strings.xml | 1 + res/values-sk/strings.xml | 1 + res/values-sl/strings.xml | 1 + res/values-sr/strings.xml | 1 + res/values-sv/strings.xml | 1 + res/values-th/strings.xml | 1 + res/values-tl/strings.xml | 1 + res/values-tr/strings.xml | 1 + res/values-uk/strings.xml | 1 + res/values-vi/strings.xml | 1 + res/values-zh-rCN/strings.xml | 1 + res/values-zh-rTW/strings.xml | 1 + res/values/strings.xml | 2 + res/xml/poweroff.xml | 20 +++++ res/xml/settings_headers.xml | 8 ++ src/com/android/settings/PowerOff.java | 121 +++++++++++++++++++++++++++++ 49 files changed, 203 insertions(+) create mode 100644 res/drawable-hdpi/ic_settings_poweroff.png create mode 100644 res/drawable-mdpi/ic_settings_poweroff.png create mode 100644 res/xml/poweroff.xml create mode 100644 src/com/android/settings/PowerOff.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index cfa92b020f..f4f7d2111a 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -582,6 +582,16 @@ android:resource="@id/about_settings" /> + + + + + + + + Px#0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr01tJKR zPvo!w00TWqL_t(o!|j)`ZyZ$+hrjpsj2t8kP8x@}Okqx7S&E=@l~ho~J*gALDNLFF z04kiuwcX?&ND7lwQK|?ODRL690v(vU&UTc51@?UuyL-2Hx3{;p5J-^OV(-0q?>F;i z-py|o-pGGmLcL|4cx$K$9EgN$B7JvqWjLvUE_i};iih1%2IE=iu3s7{o=_Z8<0{*Ig8YNxr`33G7Avh$dh084>uCZFXn@XF10l z6TlIh+~he)o{>=7|6mla`%2YEuGs8(YGTtBAF2Av>tZyFI>TuARaIYj#fdI-Gu;-j&ga^3@yEOBQ_u9lHN#Z(gt!RgKBrk7N`m?Bgeh~m2Xpa|5}Ty@h;uco8Eza&0TH+q_K_#jT( zQm^IyceM#*>0C=kg|IfnYii5s6s0Gz&qf3;Fv9`&(;8DOZ<3X^BMYT4Ksx^ozca%H zAck@SAzl3u@SLAZNg$RumCFv_0}H^Y6PQBI0zYv`z}l1|fkS=-&JH>jhw9vW!0t#t zM@aPq%*w+?to(A?OtCCs+(%?MMt~fzR zqqhajF{tH7kBXEgRw0R74tT;hrmwUkH zz~PX)2Z$UD(d%Kh;~u-jitAlj><}lNa>~h)Vt2W2u^U~kM?J?Z*Xf1@_e%+<3_d5E zeHX?OPJuFS6eu&vd0>FKLq6_~6TvfyR6RlQZa zZ5il{mVK>ueCQW8`*^tNiVy9muU)QcyvDVTAMz!i5`jPXfnR9@GrZ3SyajaFPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr0 z1v)iMJTUkG00Ny!L_t(o!|j$$h>mL*$A8y52IC{2k z*Z;a<*nW45Mt@W*fQ5UE2!APo1Z@MR0ds)~Kn3^!JO};-dLyE*=>*i#z)D~Xum+fv z5$Fe6fG@y(;39A}B3?9&fZ7i10yZU3SFTq;Uy@k>ECuEOcY));^@#ZRQ$?aKQ_rd| z)T8PObwXi3su5D>tNYbE>Rolm&w{rn_&s&EI;9FYkU;f2iL6sEsJGQlwY3rOHuW#{ znYwEraG@wEBc!fUuc(*QB|~m8wL|Sv|5hiL0jXniwbZy{oBBjOsE#bds?^}n25bgC z0cRrO|B^G4fqlRc;E(UBJE9-B3S0*^0JDZdU^=im+v;JBFt_E!TY=eSDFS+c%L%@y zEK-#kd7T4H1iB*P-5}X&0Y=nvBn9a~3e{quwVnuA5Sf=v(2*YCO-8j+Zwjh9|FuSF zhg8!AwXCZK0_e@XNsSDcl7b!&ye$l`AEw}WO74PM?Nd1Wqv16#Q~Ee%dvF5j@qbx7 zOM#h#fWJ%6J`dvk`aIJe5nt*Rq7mv&^^v+)9aSd5>JoK%aW)LtUzuX|k2-#+YB)nZ zt=>}CHX!A*)MIM5+R^AR+L(jryt=kb`)m9+TRo&cRu8CS8znGG{WGW9HFdi>wQRbn zE$X-o`^f}9tWIslgQOGKlaG!Ysqy!+xcY%Hz(Qah(2+fV3OErFubV-jHNiVm|L3N> z_5feA&nKqh-2%=5HzVSGvmd1+tAi!AeOh|klYQO|JdKFnU-~T1sn%N15rMwC`+V4j btzh2(rB2gBi)ke?00000NkvXXu0mjfM6_Q} literal 0 HcmV?d00001 diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index acf2d4b0ff..f8be8f10fb 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -1580,4 +1580,5 @@ "إلغاء" "%d%%" "تحديثات إضافية للنظام" + "ﺈﻴﻗﺎﻓ ﺎﻠﺘﺸﻐﻴﻟ" diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index f256fe1867..1f32b4f578 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -1580,4 +1580,5 @@ "Отказ" "%d%%" "Допълнителни системни актуализации" + "Изключване" diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 04a8e00b29..cdd7582227 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -1580,4 +1580,5 @@ "Cancel·la" "%d%%" "Actualitzacions addicionals del sistema" + "Apaga" diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index a7994e75d7..62b6878455 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -1580,4 +1580,5 @@ "Zrušit" "%d %%" "Další aktualizace systému" + "Vypnout" diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 8ad7f7fcb4..a5654b14e6 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -1580,4 +1580,5 @@ "Annuller" "%d %%" "Yderligere systemopdateringer" + "Sluk" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 434b9fc974..7938a8f8d4 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -1581,4 +1581,5 @@ "Abbrechen" "%d%%" "Zusätzliche Systemupdates" + "Ausschalten" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 1c19956b36..aa498131d6 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -1580,4 +1580,5 @@ "Ακύρωση" "%d%%" "Πρόσθετες ενημερώσεις συστήματος" + "Απενεργοποίηση" diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 6236161fcc..8a888c358e 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -1580,4 +1580,5 @@ "Cancel" "%d%%" "Additional system updates" + "Power off" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 31df4e9283..ad3eab9a81 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -1580,4 +1580,5 @@ "Cancelar" "%d%%" "Actualizaciones del sistema adicionales" + "Apagar" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index d7276ae287..4da4fc5ad4 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -1580,4 +1580,5 @@ "Cancelar" "%d%%" "Otras actualizaciones del sistema" + "Apagar" diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 7b1d71049e..eb17ee660b 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -1580,4 +1580,5 @@ "لغو" "%d%%" "به روزرسانی های دیگر سیستم" + "ﺥﺎﻣﻮﺷ کﺭﺪﻧ" diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 34fa04bd72..71bcc2db4f 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -1580,4 +1580,5 @@ "Peruuta" "%d%%" "Järjestelmän lisäpäivitykset" + "Virta pois" diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 97497635e7..a44b9875c0 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -1582,4 +1582,5 @@ "Mises à jour supplémentaires du système" + "Éteindre" diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 48d7a9c8a9..e2a1455b90 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -1580,4 +1580,5 @@ "Odustani" "%d%%" "Dodatna ažuriranja sustava" + "Isključi" diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index f22499de7f..95ac655a9d 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -1582,4 +1582,5 @@ "További rendszerfrissítések" + "Kikapcsolás" diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index ed7347ba0d..a64f232ea4 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -1580,4 +1580,5 @@ "Batal" "%d%%" "Pemutakhiran sistem tambahan" + "Matikan daya" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index d83185cae5..8129eddcfa 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -1580,4 +1580,5 @@ "Annulla" "%d%%" "Aggiornamenti di sistema aggiuntivi" + "Spegni" diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 66a137e795..61f1808273 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -1580,4 +1580,5 @@ "ביטול" "%d%%" "עדכוני מערכת נוספים" + "כיבוי" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 514ac6d0a8..b3205815d9 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -1585,4 +1585,5 @@ "キャンセル" "%d%%" "その他のシステムアップデート" + "電源を切る" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 85a1ffce4d..d243bcce5c 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -1580,4 +1580,5 @@ "취소" "%d%%" "추가 시스템 업데이트" + "종료" diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index c439cbc3da..ff297bdf9f 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -1580,4 +1580,5 @@ "Atšaukti" "%d %%" "Papildomi sistemos naujiniai" + "Išjungti maitinimą" diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 2fe7124711..5929499a9a 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -1580,4 +1580,5 @@ "Atcelt" "%d%%" "Papildu sistēmas atjauninājumi" + "Strāvas padeve ir izslēgta." diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 0681fd6d06..1b14ce19c7 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -1580,4 +1580,5 @@ "Avbryt" "%d %%" "Ytterligere systemoppdateringer" + "Slå av" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 9d2fa1e38a..9e4167f3b7 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -1580,4 +1580,5 @@ "Annuleren" "%d%%" "Aanvullende systeemupdates" + "Uitschakelen" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 1b50018f5d..aef40e2282 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -1580,4 +1580,5 @@ "Anuluj" "%d%%" "Dodatkowe aktualizacje systemu" + "Wyłącz" diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 02b8dc4fde..bddfba5c7c 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -1580,4 +1580,5 @@ "Cancelar" "%d%%" "Atualizações adicionais do sistema" + "Desligar" diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 8bb99c50a0..57da841461 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -1580,4 +1580,5 @@ "Cancelar" "%d%%" "Atualizações adicionais do sistema" + "Desligar" diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml index fe57b04fc8..f1dc2909aa 100644 --- a/res/values-rm/strings.xml +++ b/res/values-rm/strings.xml @@ -2411,4 +2411,5 @@ + "Serrar" diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index b029a45d80..35b88fd8e8 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -1580,4 +1580,5 @@ "Anulaţi" "%d%%" "Actualizări de sistem suplimentare" + "Opriţi alimentarea" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index b206d8ee73..a5eb4ae758 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -1582,4 +1582,5 @@ "Дополнительные обновления системы" + "Выключение" diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 5976402aaf..28b7b4108f 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -1580,4 +1580,5 @@ "Zrušiť" "%d %%" "Ďalšie aktualizácie systému" + "Vypnúť" diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index d67599a158..1e0ad80b70 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -1580,4 +1580,5 @@ "Prekliči" "%d%%" "Dodatne posodobitve sistema" + "Izklopi" diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index d9fbe15046..5a640df0a0 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -1580,4 +1580,5 @@ "Откажи" "%d%%" "Додатна ажурирања система" + "Искључи" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 968f5bb0cf..58c46dcd5a 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -1580,4 +1580,5 @@ "Avbryt" "%d %%" "Ytterligare systemuppdateringar" + "Stäng av" diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 8b03cb96ca..6d5be86450 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -1580,4 +1580,5 @@ "ยกเลิก" "%d%%" "การอัปเดตระบบอื่นๆ" + "ปิดเครื่อง" diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index c5a0364721..a08c254ef5 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -1580,4 +1580,5 @@ "Kanselahin" "%d%%" "Mga karagdagang pag-update sa system" + "I-off" diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 2360d3842c..b9908a7592 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -1580,4 +1580,5 @@ "İptal" "%%%d" "Ek sistem güncellemeleri" + "Kapat" diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 3579743f0a..e5b4d48823 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -1580,4 +1580,5 @@ "Скасувати" "%d%%" "Додаткові оновлення системи" + "Вимкнути" diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index d2d9b4e200..122566b88d 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -1580,4 +1580,5 @@ "Hủy" "%d%%" "Bản cập nhật hệ thống bổ sung" + "Tắt nguồn" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 6305712fba..09744b39c6 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -1580,4 +1580,5 @@ "取消" "%d%%" "其他系统更新" + "关机" diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 907372f5c9..45468bfd7e 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -1580,4 +1580,5 @@ "取消" "%d%%" "其他系統更新" + "關機" diff --git a/res/values/strings.xml b/res/values/strings.xml index 6ec52d9001..b70c5fd81d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3788,4 +3788,6 @@ found in the list of installed apps. "system_update_settings_list_item_title" in this project. [CHAR LIMIT=25] --> Additional system updates + + Power Off diff --git a/res/xml/poweroff.xml b/res/xml/poweroff.xml new file mode 100644 index 0000000000..0340168e85 --- /dev/null +++ b/res/xml/poweroff.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/res/xml/settings_headers.xml b/res/xml/settings_headers.xml index 0f4dbb3314..9c2bf7ce2e 100644 --- a/res/xml/settings_headers.xml +++ b/res/xml/settings_headers.xml @@ -182,4 +182,12 @@ android:icon="@drawable/ic_settings_about" android:title="@string/about_settings" /> + +
+ +
diff --git a/src/com/android/settings/PowerOff.java b/src/com/android/settings/PowerOff.java new file mode 100644 index 0000000000..4faf078685 --- /dev/null +++ b/src/com/android/settings/PowerOff.java @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2006 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.settings; + +import android.app.Activity; +import android.app.ActivityManager; +import android.app.AlertDialog; +import android.app.Dialog; +import android.util.Slog; +import android.content.BroadcastReceiver; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Build; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceGroup; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.util.Log; +import android.view.WindowManager; +import android.content.Context; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.List; +import android.os.Handler; + +public class PowerOff extends SettingsPreferenceFragment{ + private Context mContext; + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + } + public void onStart() { + super.onStart(); + beginshutdown(); + } + + public void beginshutdown() + { + final CloseDialogReceiver closer = new CloseDialogReceiver(getActivity()); + final AlertDialog dialog = new AlertDialog.Builder(getActivity()) + .setIconAttribute(android.R.attr.alertDialogIcon) + .setTitle(com.android.internal.R.string.power_off) + .setMessage(com.android.internal.R.string.shutdown_confirm_question) + .setPositiveButton(com.android.internal.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Intent shutdown = new Intent(Intent.ACTION_REQUEST_SHUTDOWN); + shutdown.putExtra(Intent.EXTRA_KEY_CONFIRM, false); + shutdown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(shutdown); + } + }) + .setNegativeButton(com.android.internal.R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Intent close = new Intent(Intent.ACTION_MAIN); + close.addCategory(Intent.CATEGORY_HOME); + close.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(close); + finish(); + } + }) + .create(); + closer.dialog = dialog; + dialog.setOnDismissListener(closer); + dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); + if (!getActivity().getResources().getBoolean( + com.android.internal.R.bool.config_sf_slowBlur)) { + dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND); + } + dialog.show(); + + } + private static class CloseDialogReceiver extends BroadcastReceiver + implements DialogInterface.OnDismissListener { + private Context mContext; + public Dialog dialog; + + CloseDialogReceiver(Context context) { + mContext = context; + IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + context.registerReceiver(this, filter); + } + + @Override + public void onReceive(Context context, Intent intent) { + dialog.cancel(); + } + + public void onDismiss(DialogInterface unused) { + mContext.unregisterReceiver(this); + } + } + public void onResume() { + super.onResume(); + } + public void onPause() { + super.onPause(); + } + public void onStop() { + super.onStop(); + } + public void onDestroy() { + super.onDestroy(); + } + } -- 2.11.0