13
13
import com .atomjack .vcfp .model .PlexClient ;
14
14
import com .atomjack .vcfp .model .PlexServer ;
15
15
16
- import java .util .Map ;
17
16
import java .util .concurrent .ConcurrentHashMap ;
18
17
19
18
public class LocalScan {
20
19
private Context context ;
21
20
private Class theClass ;
22
21
private Dialog searchDialog ;
23
- private Dialog serverSelectDialog = null ;
22
+ private Dialog deviceSelectDialog = null ;
24
23
private ScanHandler scanHandler ;
25
24
26
25
public LocalScan (Context ctx , Class cls , ScanHandler handler ) {
@@ -64,14 +63,14 @@ public void showPlexServers() {
64
63
public void showPlexServers (ConcurrentHashMap <String , PlexServer > servers ) {
65
64
if (searchDialog != null )
66
65
searchDialog .dismiss ();
67
- if (serverSelectDialog == null ) {
68
- serverSelectDialog = new Dialog (context );
66
+ if (deviceSelectDialog == null ) {
67
+ deviceSelectDialog = new Dialog (context );
69
68
}
70
- serverSelectDialog .setContentView (R .layout .server_select );
71
- serverSelectDialog .setTitle ("Select a Plex Server" );
72
- serverSelectDialog .show ();
69
+ deviceSelectDialog .setContentView (R .layout .server_select );
70
+ deviceSelectDialog .setTitle ("Select a Plex Server" );
71
+ deviceSelectDialog .show ();
73
72
74
- final ListView serverListView = (ListView )serverSelectDialog .findViewById (R .id .serverListView );
73
+ final ListView serverListView = (ListView ) deviceSelectDialog .findViewById (R .id .serverListView );
75
74
if (servers == null )
76
75
servers = new ConcurrentHashMap <String , PlexServer >(VoiceControlForPlexApplication .servers );
77
76
final PlexListAdapter adapter = new PlexListAdapter (context , PlexListAdapter .TYPE_SERVER );
@@ -83,7 +82,7 @@ public void showPlexServers(ConcurrentHashMap<String, PlexServer> servers) {
83
82
public void onItemClick (AdapterView <?> parentAdapter , View view , int position , long id ) {
84
83
Logger .d ("Clicked position %d" , position );
85
84
PlexServer s = (PlexServer )parentAdapter .getItemAtPosition (position );
86
- serverSelectDialog .dismiss ();
85
+ deviceSelectDialog .dismiss ();
87
86
scanHandler .onDeviceSelected (s , false );
88
87
}
89
88
});
@@ -130,31 +129,42 @@ public void showPlexClients(boolean showResume) {
130
129
showPlexClients (showResume , null );
131
130
}
132
131
132
+ public void deviceSelectDialogRefresh () {
133
+ ListView serverListView = (ListView ) deviceSelectDialog .findViewById (R .id .serverListView );
134
+ PlexListAdapter adapter = (PlexListAdapter )serverListView .getAdapter ();
135
+ adapter .setClients (VoiceControlForPlexApplication .getAllClients ());
136
+ adapter .notifyDataSetChanged ();
137
+ }
138
+
139
+ public boolean isDeviceDialogShowing () {
140
+ return deviceSelectDialog != null && deviceSelectDialog .isShowing ();
141
+ }
142
+
133
143
public void showPlexClients (boolean showResume , final ScanHandler onFinish ) {
134
144
if (searchDialog != null )
135
145
searchDialog .dismiss ();
136
- if (serverSelectDialog == null ) {
137
- serverSelectDialog = new Dialog (context );
146
+ if (deviceSelectDialog == null ) {
147
+ deviceSelectDialog = new Dialog (context );
138
148
}
139
- serverSelectDialog .setContentView (R .layout .server_select );
140
- serverSelectDialog .setTitle (R .string .select_plex_client );
141
- serverSelectDialog .setOnCancelListener (new DialogInterface .OnCancelListener () {
149
+ deviceSelectDialog .setContentView (R .layout .server_select );
150
+ deviceSelectDialog .setTitle (R .string .select_plex_client );
151
+ deviceSelectDialog .setOnCancelListener (new DialogInterface .OnCancelListener () {
142
152
@ Override
143
153
public void onCancel (DialogInterface dialogInterface ) {
144
154
if (onFinish == null && scanHandler != null )
145
155
scanHandler .onDeviceSelected (null , false );
146
- else if (onFinish != null )
156
+ else if (onFinish != null )
147
157
onFinish .onDeviceSelected (null , false );
148
158
}
149
159
});
150
- serverSelectDialog .show ();
160
+ deviceSelectDialog .show ();
151
161
152
162
if (showResume ) {
153
- CheckBox resumeCheckbox = (CheckBox ) serverSelectDialog .findViewById (R .id .serverListResume );
163
+ CheckBox resumeCheckbox = (CheckBox ) deviceSelectDialog .findViewById (R .id .serverListResume );
154
164
resumeCheckbox .setVisibility (View .VISIBLE );
155
165
}
156
166
157
- final ListView serverListView = (ListView ) serverSelectDialog .findViewById (R .id .serverListView );
167
+ final ListView serverListView = (ListView ) deviceSelectDialog .findViewById (R .id .serverListView );
158
168
final PlexListAdapter adapter = new PlexListAdapter (context , PlexListAdapter .TYPE_CLIENT );
159
169
adapter .setClients (VoiceControlForPlexApplication .getAllClients ());
160
170
serverListView .setAdapter (adapter );
@@ -164,8 +174,8 @@ else if(onFinish != null)
164
174
public void onItemClick (AdapterView <?> parentAdapter , View view , int position ,
165
175
long id ) {
166
176
PlexClient s = (PlexClient ) parentAdapter .getItemAtPosition (position );
167
- serverSelectDialog .dismiss ();
168
- CheckBox resumeCheckbox = (CheckBox ) serverSelectDialog .findViewById (R .id .serverListResume );
177
+ deviceSelectDialog .dismiss ();
178
+ CheckBox resumeCheckbox = (CheckBox ) deviceSelectDialog .findViewById (R .id .serverListResume );
169
179
if (onFinish == null )
170
180
scanHandler .onDeviceSelected (s , resumeCheckbox .isChecked ());
171
181
else
0 commit comments