mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-23 04:33:54 -04:00
Fixed local hotspot not stopping bug on devices >=O
Now checking hotspotstate from within hotspot service using the context from main activity.
This commit is contained in:
parent
1f5a52484f
commit
ecf134a632
@ -170,6 +170,7 @@ import static org.kiwix.kiwixmobile.utils.Constants.TAG_KIWIX;
|
|||||||
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
|
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
|
||||||
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
|
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
|
||||||
import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl;
|
import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl;
|
||||||
|
import static org.kiwix.kiwixmobile.wifi_hotspot.HotspotService.checkHotspotState;
|
||||||
|
|
||||||
public class MainActivity extends BaseActivity implements WebViewCallback,
|
public class MainActivity extends BaseActivity implements WebViewCallback,
|
||||||
MainContract.View {
|
MainContract.View {
|
||||||
@ -1083,7 +1084,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
private void switchHotspot() {
|
private void switchHotspot() {
|
||||||
if (wifiHotspotManager.isWifiApEnabled()) {
|
if (wifiHotspotManager.isWifiApEnabled()) {
|
||||||
startService(ACTION_TURN_OFF_BEFORE_O);
|
startService(ACTION_TURN_OFF_BEFORE_O);
|
||||||
//wifiHotspotManager.setWifiEnabled(null, false);
|
//hotspotManager.setWifiEnabled(null, false);
|
||||||
} else {
|
} else {
|
||||||
//Check if user's hotspot is enabled
|
//Check if user's hotspot is enabled
|
||||||
if (isMobileDataEnabled(this)) {
|
if (isMobileDataEnabled(this)) {
|
||||||
@ -1093,7 +1094,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
// potentially add data to the intent
|
// potentially add data to the intent
|
||||||
//i.putExtra("TURN_ON_HOTSPOT_BEFORE_O", "turnOnHotspotBeforeO");
|
//i.putExtra("TURN_ON_HOTSPOT_BEFORE_O", "turnOnHotspotBeforeO");
|
||||||
startService(ACTION_TURN_ON_BEFORE_O);
|
startService(ACTION_TURN_ON_BEFORE_O);
|
||||||
//wifiHotspotManager.setWifiEnabled(null, true);
|
//hotspotManager.setWifiEnabled(null, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1131,11 +1132,11 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
|
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
|
||||||
== PackageManager.PERMISSION_GRANTED) {
|
== PackageManager.PERMISSION_GRANTED) {
|
||||||
Log.v("DANG", "Turn off 0");
|
Log.v("DANG", "Turn off 0");
|
||||||
if (wifiHotspotManager.checkHotspotState()) //If hotspot is already enabled, turn it off
|
if (checkHotspotState(this)) //If hotspot is already enabled, turn it off
|
||||||
{
|
{
|
||||||
Log.v("DANG", "Turn off 1");
|
Log.v("DANG", "Turn off 1");
|
||||||
startService(ACTION_TURN_OFF_AFTER_O);
|
startService(ACTION_TURN_OFF_AFTER_O);
|
||||||
//wifiHotspotManager.turnOffHotspot();
|
//hotspotManager.turnOffHotspot();
|
||||||
} else //If hotspot is not already enabled, then turn it on.
|
} else //If hotspot is not already enabled, then turn it on.
|
||||||
{
|
{
|
||||||
setupLocationServices();
|
setupLocationServices();
|
||||||
@ -2318,7 +2319,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
|
|
||||||
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
startService(ACTION_TURN_ON_AFTER_O);
|
startService(ACTION_TURN_ON_AFTER_O);
|
||||||
//wifiHotspotManager.turnOnHotspot();
|
//hotspotManager.turnOnHotspot();
|
||||||
//}
|
//}
|
||||||
} catch (ApiException exception) {
|
} catch (ApiException exception) {
|
||||||
switch (exception.getStatusCode()) {
|
switch (exception.getStatusCode()) {
|
||||||
|
@ -13,6 +13,7 @@ import android.os.Build;
|
|||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
import org.kiwix.kiwixmobile.R;
|
import org.kiwix.kiwixmobile.R;
|
||||||
import org.kiwix.kiwixmobile.main.MainActivity;
|
import org.kiwix.kiwixmobile.main.MainActivity;
|
||||||
@ -28,14 +29,16 @@ public class HotspotService extends Service {
|
|||||||
public static final String ACTION_START = "hotspot_start";
|
public static final String ACTION_START = "hotspot_start";
|
||||||
public static final String ACTION_STOP = "hotspot_stop";
|
public static final String ACTION_STOP = "hotspot_stop";
|
||||||
public static final String ACTION_STATUS = "hotspot_status";
|
public static final String ACTION_STATUS = "hotspot_status";
|
||||||
private WifiHotspotManager wifiHotspotManager;
|
public static WifiHotspotManager hotspotManager;
|
||||||
private BroadcastReceiver stopReceiver;
|
private BroadcastReceiver stopReceiver;
|
||||||
private NotificationManager notificationManager;
|
private NotificationManager notificationManager;
|
||||||
private NotificationCompat.Builder builder;
|
private NotificationCompat.Builder builder;
|
||||||
|
|
||||||
@Override public void onCreate() {
|
@Override public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
wifiHotspotManager = new WifiHotspotManager(this);
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||||
|
hotspotManager = new WifiHotspotManager(this);
|
||||||
|
}
|
||||||
stopReceiver = new BroadcastReceiver() {
|
stopReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
@ -53,28 +56,28 @@ public class HotspotService extends Service {
|
|||||||
@Override public int onStartCommand(Intent intent, int flags, int startId) {
|
@Override public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
switch (intent.getAction()) {
|
switch (intent.getAction()) {
|
||||||
case ACTION_TURN_ON_BEFORE_O:
|
case ACTION_TURN_ON_BEFORE_O:
|
||||||
if (wifiHotspotManager.setWifiEnabled(null, true)) {
|
if (hotspotManager.setWifiEnabled(null, true)) {
|
||||||
updateNotification(getString(R.string.hotspot_running), true);
|
updateNotification(getString(R.string.hotspot_running), true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ACTION_TURN_ON_AFTER_O:
|
case ACTION_TURN_ON_AFTER_O:
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
Log.v("DANG","Coming after 3");
|
Log.v("DANG","Coming after 3");
|
||||||
wifiHotspotManager.turnOnHotspot();
|
hotspotManager.turnOnHotspot();
|
||||||
//if(it gets turned on successfully) then it goes to catch in MainActivity
|
//if(it gets turned on successfully) then it goes to catch in MainActivity
|
||||||
updateNotification(getString(R.string.hotspot_running), true);
|
updateNotification(getString(R.string.hotspot_running), true);
|
||||||
Log.v("DANG","Coming after calling updateNotification 8");
|
Log.v("DANG","Coming after calling updateNotification 8");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ACTION_TURN_OFF_BEFORE_O:
|
case ACTION_TURN_OFF_BEFORE_O:
|
||||||
wifiHotspotManager.setWifiEnabled(null, false);
|
hotspotManager.setWifiEnabled(null, false);
|
||||||
stopForeground(true);
|
stopForeground(true);
|
||||||
stopSelf();
|
stopSelf();
|
||||||
break;
|
break;
|
||||||
case ACTION_TURN_OFF_AFTER_O:
|
case ACTION_TURN_OFF_AFTER_O:
|
||||||
Log.v("DANG","Turn off 3");
|
Log.v("DANG","Turn off 3");
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
wifiHotspotManager.turnOffHotspot();
|
hotspotManager.turnOffHotspot();
|
||||||
}
|
}
|
||||||
stopForeground(true);
|
stopForeground(true);
|
||||||
stopSelf();
|
stopSelf();
|
||||||
@ -119,10 +122,10 @@ public class HotspotService extends Service {
|
|||||||
|
|
||||||
private void stopHotspot() {
|
private void stopHotspot() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
wifiHotspotManager.turnOffHotspot();
|
hotspotManager.turnOffHotspot();
|
||||||
} else {
|
} else {
|
||||||
Log.v("DANG", "Coming yes");
|
Log.v("DANG", "Coming yes");
|
||||||
wifiHotspotManager.setWifiEnabled(null, false);
|
hotspotManager.setWifiEnabled(null, false);
|
||||||
}
|
}
|
||||||
stopForeground(true);
|
stopForeground(true);
|
||||||
stopSelf();
|
stopSelf();
|
||||||
@ -149,4 +152,13 @@ public class HotspotService extends Service {
|
|||||||
Log.v("DANG","Building notification channel end : 1.1");
|
Log.v("DANG","Building notification channel end : 1.1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||||
|
public static boolean checkHotspotState(Context context) {
|
||||||
|
if (hotspotManager == null) {
|
||||||
|
Log.v("DANG", "hotspotManager initialized");
|
||||||
|
hotspotManager = new WifiHotspotManager(context);
|
||||||
|
}
|
||||||
|
return hotspotManager.checkHotspotState();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ public class WifiHotspotManager {
|
|||||||
+ " \n SSID is : "
|
+ " \n SSID is : "
|
||||||
+ currentConfig.SSID);
|
+ currentConfig.SSID);
|
||||||
|
|
||||||
//hotspotDetailsDialog();
|
hotspotDetailsDialog();
|
||||||
|
|
||||||
oreoenabled = true;
|
oreoenabled = true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user