From 30914fae7c64fdb299ab791c2e2931d68fc5ef41 Mon Sep 17 00:00:00 2001 From: lado Date: Thu, 14 Feb 2013 23:32:52 +0100 Subject: Feature #864 --- vdrmanager/res/menu-v11/channellist.xml | 16 -- vdrmanager/res/menu-v11/epg_details.xml | 20 --- vdrmanager/res/menu-v11/epg_list_item_menu.xml | 30 ---- vdrmanager/res/menu-v11/epg_list_menu.xml | 27 --- .../res/menu-v11/epg_search_time_item_menu.xml | 8 - vdrmanager/res/menu-v11/recording_list_menu.xml | 21 --- vdrmanager/res/menu-v11/refresh_menu.xml | 11 -- vdrmanager/res/menu-v11/timer_list_menu.xml | 21 --- vdrmanager/res/menu/channellist.xml | 14 -- vdrmanager/res/menu/epg_details.xml | 20 --- vdrmanager/res/menu/epg_list_item_menu.xml | 11 -- vdrmanager/res/menu/epg_list_menu.xml | 21 --- vdrmanager/res/menu/epg_search_time_item_menu.xml | 8 - vdrmanager/res/menu/recording_list_menu.xml | 20 --- vdrmanager/res/menu/refresh_menu.xml | 10 -- vdrmanager/res/menu/timer_list_menu.xml | 20 --- vdrmanager/res/values/arrays.xml | 11 +- vdrmanager/res/values/strings.xml | 6 +- vdrmanager/res/xml/vdr_prefs.xml | 4 +- .../vdrmanager/gui/VdrPreferencesActivity.java | 189 +++++++++++++++++++-- 20 files changed, 187 insertions(+), 301 deletions(-) delete mode 100644 vdrmanager/res/menu-v11/channellist.xml delete mode 100644 vdrmanager/res/menu-v11/epg_details.xml delete mode 100644 vdrmanager/res/menu-v11/epg_list_item_menu.xml delete mode 100644 vdrmanager/res/menu-v11/epg_list_menu.xml delete mode 100644 vdrmanager/res/menu-v11/epg_search_time_item_menu.xml delete mode 100644 vdrmanager/res/menu-v11/recording_list_menu.xml delete mode 100644 vdrmanager/res/menu-v11/refresh_menu.xml delete mode 100644 vdrmanager/res/menu-v11/timer_list_menu.xml delete mode 100644 vdrmanager/res/menu/channellist.xml delete mode 100644 vdrmanager/res/menu/epg_details.xml delete mode 100644 vdrmanager/res/menu/epg_list_item_menu.xml delete mode 100644 vdrmanager/res/menu/epg_list_menu.xml delete mode 100644 vdrmanager/res/menu/epg_search_time_item_menu.xml delete mode 100644 vdrmanager/res/menu/recording_list_menu.xml delete mode 100644 vdrmanager/res/menu/refresh_menu.xml delete mode 100644 vdrmanager/res/menu/timer_list_menu.xml diff --git a/vdrmanager/res/menu-v11/channellist.xml b/vdrmanager/res/menu-v11/channellist.xml deleted file mode 100644 index 2ca3884..0000000 --- a/vdrmanager/res/menu-v11/channellist.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu-v11/epg_details.xml b/vdrmanager/res/menu-v11/epg_details.xml deleted file mode 100644 index 4458f09..0000000 --- a/vdrmanager/res/menu-v11/epg_details.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/vdrmanager/res/menu-v11/epg_list_item_menu.xml b/vdrmanager/res/menu-v11/epg_list_item_menu.xml deleted file mode 100644 index 93ccb68..0000000 --- a/vdrmanager/res/menu-v11/epg_list_item_menu.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu-v11/epg_list_menu.xml b/vdrmanager/res/menu-v11/epg_list_menu.xml deleted file mode 100644 index ea31378..0000000 --- a/vdrmanager/res/menu-v11/epg_list_menu.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu-v11/epg_search_time_item_menu.xml b/vdrmanager/res/menu-v11/epg_search_time_item_menu.xml deleted file mode 100644 index a54abf0..0000000 --- a/vdrmanager/res/menu-v11/epg_search_time_item_menu.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu-v11/recording_list_menu.xml b/vdrmanager/res/menu-v11/recording_list_menu.xml deleted file mode 100644 index 2edc02b..0000000 --- a/vdrmanager/res/menu-v11/recording_list_menu.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu-v11/refresh_menu.xml b/vdrmanager/res/menu-v11/refresh_menu.xml deleted file mode 100644 index 9c31b62..0000000 --- a/vdrmanager/res/menu-v11/refresh_menu.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu-v11/timer_list_menu.xml b/vdrmanager/res/menu-v11/timer_list_menu.xml deleted file mode 100644 index fa00a26..0000000 --- a/vdrmanager/res/menu-v11/timer_list_menu.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/channellist.xml b/vdrmanager/res/menu/channellist.xml deleted file mode 100644 index c62dd18..0000000 --- a/vdrmanager/res/menu/channellist.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/epg_details.xml b/vdrmanager/res/menu/epg_details.xml deleted file mode 100644 index df19218..0000000 --- a/vdrmanager/res/menu/epg_details.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - diff --git a/vdrmanager/res/menu/epg_list_item_menu.xml b/vdrmanager/res/menu/epg_list_item_menu.xml deleted file mode 100644 index cc6ed44..0000000 --- a/vdrmanager/res/menu/epg_list_item_menu.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/epg_list_menu.xml b/vdrmanager/res/menu/epg_list_menu.xml deleted file mode 100644 index 2335101..0000000 --- a/vdrmanager/res/menu/epg_list_menu.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/epg_search_time_item_menu.xml b/vdrmanager/res/menu/epg_search_time_item_menu.xml deleted file mode 100644 index a54abf0..0000000 --- a/vdrmanager/res/menu/epg_search_time_item_menu.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/recording_list_menu.xml b/vdrmanager/res/menu/recording_list_menu.xml deleted file mode 100644 index 8b3e72d..0000000 --- a/vdrmanager/res/menu/recording_list_menu.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/refresh_menu.xml b/vdrmanager/res/menu/refresh_menu.xml deleted file mode 100644 index 8bfe27d..0000000 --- a/vdrmanager/res/menu/refresh_menu.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/menu/timer_list_menu.xml b/vdrmanager/res/menu/timer_list_menu.xml deleted file mode 100644 index 93509ec..0000000 --- a/vdrmanager/res/menu/timer_list_menu.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/vdrmanager/res/values/arrays.xml b/vdrmanager/res/values/arrays.xml index 73baaf7..33e08ac 100644 --- a/vdrmanager/res/values/arrays.xml +++ b/vdrmanager/res/values/arrays.xml @@ -11,12 +11,12 @@ it uk - + EXT EXTERN - + akas.imdb.com imdb.com @@ -27,11 +27,12 @@ imdb.it imdb.pt - - + + vdr-live + vdr-streamdev - + \ No newline at end of file diff --git a/vdrmanager/res/values/strings.xml b/vdrmanager/res/values/strings.xml index 5796515..9812c55 100644 --- a/vdrmanager/res/values/strings.xml +++ b/vdrmanager/res/values/strings.xml @@ -32,6 +32,7 @@ Refresh Done Share + Add to calendar Reruns Share EPG Entry @@ -274,10 +275,11 @@ VDR live plugin + VDR streamdev plugin Streaming method - Currently Streaming over VDR live plugin is supported + Currently Streaming over VDR live and or streamdev plugin is supported VDR live plugin port VDR live plugin has default port 8008. @@ -347,4 +349,6 @@ Alphabet Chanellist Clear Search History + VDR host not defined + Processing… \ No newline at end of file diff --git a/vdrmanager/res/xml/vdr_prefs.xml b/vdrmanager/res/xml/vdr_prefs.xml index c83f014..20d9823 100644 --- a/vdrmanager/res/xml/vdr_prefs.xml +++ b/vdrmanager/res/xml/vdr_prefs.xml @@ -68,7 +68,7 @@ android:key="@string/wakeup_password_key" android:password="true" android:summary="@string/wakeup_password_summary" android:title="@string/wakeup_password_title" /> - @@ -129,7 +129,7 @@ android:summary="@string/remux_parameter_summary" android:title="@string/remux_parameter_title" /> - + = 4 + && ip.equals(values[0])) { + // format check + String mac = values[3]; + if (mac.matches("..:..:..:..:..:..")) { + return mac; + } else { + return null; + } + } + } + } catch (Exception e) { + + } finally { + try { + br.close(); + } catch (IOException e) { + + } + } + return null; + } + + private String getIp() throws Exception { + final Preferences prefs = Preferences.get(); + String host = prefs.getSvdrpHost(); + return InetAddress.getByName(host).getHostAddress(); + } + + private void ping(String ip) throws Exception { + final Preferences prefs = Preferences.get(); + Socket socket = new Socket(); + socket.connect(new InetSocketAddress(ip, prefs.getSvdrpPort()), + 5 * 1000); + socket.setSoTimeout(5 * 1000); } @Override @@ -54,15 +123,88 @@ public class VdrPreferencesActivity extends BasePreferencesActivity implements super.onCreate(savedInstanceState); - initVDR(); + pref = new VdrSharedPreferences(); + + pref.dao = DBAccess.get(this).getVdrDAO(); + + initVDRInstance(); + + this.addPreferencesFromResource(R.xml.vdr_prefs); // this.getPreferenceManager().setSharedPreferencesName(Preferences.getPreferenceFile(this)); - pref.instance = vdr; - pref.dao = DBAccess.get(this).getVdrDAO(); pref.registerOnSharedPreferenceChangeListener(this); - this.addPreferencesFromResource(R.xml.vdr_prefs); + + + String recstream = pref.getString("key_recstream_method", "vdr-live"); + + if (recstream.equals("vdr-live") == false) { + Preference p = findPreference("key_live_port"); + p.setEnabled(false); + // PreferenceCategory cat = (PreferenceCategory) + // findPreference("key_streaming_category"); + // cat.removePreference(p); + } + + final String host = pref.getString(getString(R.string.vdr_host_key), + null); + + // create background task + + // start task + + final MacFetchEditTextPreference macedit = (MacFetchEditTextPreference) findPreference(getString(R.string.wakeup_wol_mac_key)); + String mac = vdr.getMac(); + macedit.setText(mac); + macedit.setCompoundButtonListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (host == null) { + Utils.say(VdrPreferencesActivity.this, + getString(R.string.vdr_host_not_defined)); + return; + } + + new VoidAsyncTask() { + + ProgressDialog pd; + + private String mac; + + String message; + + protected void onPreExecute() { + pd = new ProgressDialog(VdrPreferencesActivity.this); + pd.setMessage(getString(R.string.processing)); + pd.show(); + }; + + protected void onPostExecute(Void result) { + pd.dismiss(); + if (message != null) { + Utils.say(VdrPreferencesActivity.this, message); + return; + } + macedit.setEditText(mac); + }; + + @Override + protected Void doInBackground(Void... params) { + try { + String ip = getIp(); + ping(ip); + mac = getMacFromArpCache(ip); + } catch (Exception ex) { + message = ex.getLocalizedMessage(); + } + + return null; + } + }.execute(); + } + }); updateChildPreferences(); } @@ -71,15 +213,33 @@ public class VdrPreferencesActivity extends BasePreferencesActivity implements updateChildPreferences(); Preference p = findPreference(key); updateSummary(p); + + if (key != null && key.equals("key_recstream_method")) { + String recstream = pref.getString("key_recstream_method", + "vdr-live"); + Preference pk = findPreference("key_live_port"); + if (recstream.equals("vdr-live") == false) { + pk.setEnabled(false); + // PreferenceCategory cat = (PreferenceCategory) + // findPreference("key_streaming_category"); + // cat.removePreference(p); + } else { + pk.setEnabled(true); + } + + // if(pk) + // cat.addPreference(pk); + // } else { + // cat.removePreference(pk); + // } + } + Preferences.reloadVDR(this); } @Override protected void onResume() { super.onResume(); - // Set up a listener whenever a key changes - pref.registerOnSharedPreferenceChangeListener(this); - } @Override @@ -162,7 +322,6 @@ public class VdrPreferencesActivity extends BasePreferencesActivity implements } - @Override public void onBackPressed() { if (id != -1) {// no new devices @@ -171,7 +330,7 @@ public class VdrPreferencesActivity extends BasePreferencesActivity implements return; } if (pref.commits < 2) {// user has not changed anything - DBAccess.get(this).getVdrDAO().delete(pref.instance); + DBAccess.get(this).getVdrDAO().delete(pref.getInstance()); finish(); return; } -- cgit v1.2.3