1package com.android.hotspot2;
2
3import android.content.Context;
4import android.content.Intent;
5import android.os.UserHandle;
6
7import com.android.hotspot2.osu.OSUInfo;
8import com.android.hotspot2.osu.OSUOperationStatus;
9
10import java.util.List;
11
12public class AppBridge {
13    public static final String ACTION_OSU_NOTIFICATION = "com.android.hotspot2.OSU_NOTIFICATION";
14    public static final String OSU_COUNT = "osu-count";
15    public static final String SP_NAME = "sp-name";
16    public static final String PROV_SUCCESS = "prov-success";
17    public static final String DEAUTH = "deauth";
18    public static final String DEAUTH_DELAY = "deauth-delay";
19    public static final String DEAUTH_URL = "deauth-url";
20    public static final String PROV_MESSAGE = "prov-message";
21    public static final String OSU_INFO = "osu-info";
22
23    public static final String GET_OSUS_ACTION = "com.android.hotspot2.GET_OSUS";
24
25    private final Context mContext;
26
27    public AppBridge(Context context) {
28        mContext = context;
29    }
30
31    public void showOsuCount(int osuCount, List<OSUInfo> osus) {
32        Intent intent = new Intent(ACTION_OSU_NOTIFICATION);
33        intent.putExtra(OSU_COUNT, osuCount);
34        intent.setFlags(
35                Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
36
37        mContext.startActivity(intent);
38    }
39
40    public void showStatus(OSUOperationStatus status, String spName, String message,
41                           String remoteStatus) {
42        Intent intent = new Intent(ACTION_OSU_NOTIFICATION);
43        intent.putExtra(SP_NAME, spName);
44        intent.putExtra(PROV_SUCCESS, status == OSUOperationStatus.ProvisioningSuccess);
45        if (message != null) {
46            intent.putExtra(PROV_MESSAGE, message);
47        }
48        intent.setFlags(
49                Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
50        mContext.startActivity(intent);
51    }
52
53    public void showDeauth(String spName, boolean ess, int delay, String url) {
54        Intent intent = new Intent(ACTION_OSU_NOTIFICATION);
55        intent.putExtra(SP_NAME, spName);
56        intent.putExtra(DEAUTH, ess);
57        intent.putExtra(DEAUTH_DELAY, delay);
58        intent.putExtra(DEAUTH_URL, url);
59        intent.setFlags(
60                Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
61        mContext.startActivity(intent);
62    }
63}
64