├── README.md
├── Ultimate IPTV Plugin-Addon V3- (OLD)
├── README.md
├── app
│ ├── app.iml
│ ├── build.gradle
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── iptvLoader
│ │ │ └── example
│ │ │ ├── classic.java
│ │ │ ├── classicEPG.java
│ │ │ ├── classicXtream.java
│ │ │ ├── tvstyle.java
│ │ │ ├── tvstyleEPG.java
│ │ │ └── tvstyleXtreme.java
│ │ └── res
│ │ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ ├── ic_launcher.png
│ │ └── icon.png
│ │ ├── drawable-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── values-v11
│ │ └── styles.xml
│ │ └── values
│ │ ├── strings.xml
│ │ └── styles.xml
├── build.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── iptv.example-master.iml
└── settings.gradle
└── Ultimate IPTV Plugin-Addon V4+
├── IPTV m3u Plugin-Addon Example.iml
├── README.md
├── app
├── build.gradle
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── iptvLoader
│ │ └── example
│ │ └── startmeup.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_launcher.png
│ ├── drawable-mdpi
│ └── ic_launcher.png
│ ├── drawable-xhdpi
│ ├── ic_launcher.png
│ └── icon.png
│ ├── drawable-xxhdpi
│ └── ic_launcher.png
│ ├── values-v11
│ └── styles.xml
│ └── values
│ ├── strings.xml
│ └── styles.xml
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
└── settings.gradle
/README.md:
--------------------------------------------------------------------------------
1 | # ULTIMATE IPTV PLUGIN-ADDON (V4.00+)
2 |
3 | Find it at Play store
4 | https://play.google.com/store/apps/details?id=com.m3uloader.player&hl=en
5 |
6 | If you want, you can test the compatibility of the plugin with your playlist using the Playlist loader apk available in the release section before creating your own application using the example. (https://github.com/greatdeveloping/m3u-Loader-Plugin/releases/tag/v1.3)
7 |
8 | NOTE: ULTIMATE IPTV PLUGIN-ADDON DOES NOT ΤΑΚΕ ANY RESPONSIBILITY FOR ANY MALICIOUS OR WRONG USE. THE APPLICATION IS INDICATED ONLY FOR USE WITH LISTS THAT YOU HAVE THE COPYRIGHT TO USE SO. THE APPLICATION DOES NOT ΤΑΚΕ ANY RESPONSIBILITY IN THE OPPOSITE CASE.
9 |
10 | .
11 | .
12 |
13 | WHATS NEW WITH LATEST V4.22
14 |
15 | (1) Updated EPG detection inside an m3u. Fixed detection of EPG extension.
16 |
17 | (2) Epg preparation in the background (by default).
18 |
19 | (3) Added new menu style/type for tvstyle.
20 |
21 | (4) Clock removal option.
22 |
23 | (5) Option to change channel logo URL.
24 |
25 | (7) Other changes and improvements.
26 |
27 | .
28 |
29 | WHATS NEW WITH LATEST V4.21
30 |
31 | (1) Fix a bug with EPG Downloader
32 |
33 | .
34 |
35 | WHATS NEW WITH LATEST V4.20
36 |
37 | (1) Support epg links (multiple) inside the m3u (example m3u topic #EXTM3U url-tvg="https://MY_EPG_LINK/epg.gz")
38 | NOTE: If you sent epg with intent then epg links inside m3u will be ignored. Intent epg supports only one epg.
39 |
40 | (2) Fixed and updated internal players
41 |
42 | (3) Better support mag portal, support device name (for example you can intent "MAG322").
43 |
44 | (4) Favorites can be organized inside folders.
45 |
46 | (5) You can rename Channels
47 |
48 | (6) Many other changes and tweaks.
49 |
50 | .
51 | .
52 |
53 |
54 | How to Execute Ultimate IPTV Plugin-Addon from my app?
55 | See the example how to intent your app use Ultimate IPTV Plugin-Addon and load your Playlist. You have two option, Classic (phone optimized or for low end devices) and TvStyle (set-top box style). See updated Example.
56 |
57 |
58 | Ultimate IPTV Plugin-Addon Support (V4+, for older versions see readme at V3- example - unsupported):
59 |
60 | -1 m3u from internet, plus EPG url (uncompressed or compressed to .gz or .xz) if you wish. Just intent your m3u and epg to the app.
61 |
62 | -2 Xtream Codes (full support - livetv ,movies, series catchup,radio). Just intent your portal-username-password to the app. Great got Premium IPTV Providers who dont want to spent money for an app.
63 |
64 | -3 Mag Portal (full support - livetv ,movies, series catchup,radio). Just intent your portal and mac# to the app (V4.06+ You can also intent mag details, serial, device id, device id2 and signature, see example).
65 |
66 | .
67 |
68 | See the Example how to switch between each type.
69 |
70 | .
71 | .
72 |
73 | General Info about Ultimate IPTV Plugin-Addon:
74 |
75 | - Its a plugin-addon which support
76 |
77 | internet m3u + EPG,
78 |
79 | Xtream Codes (Live Tv - Movies - Series - Catchup) and
80 |
81 | MAG Portal (Live Tv - Movies - Series - Radio - Catchup)
82 | - Parse your playlists and show them in grid/list/tile with logos when available, groups also supported.
83 | - EPG Supported for all m3us (needed to add your own EPG file link), Xtreams codes and Mag Portal.
84 | - Two styles to choose (see example how to choose), Classic and tvstyle. Both styles is fully supported with device remote control.
85 | - Easy and fast choose groups with \"Select Group\" button or by pressing next or previous buttons.
86 | - Has 3 internal players (can play a lot of Formats without any external player), internal youtube player but also support external players (youtube official app, MXPlayer, Vlc, Wuffy, Xplayer, Soptohttp and Acestream for P2P so far).
87 | - Support external players for chromecast,DLNS and more (LocalCast and WebViewCast)
88 | - Support many advance parameters/futures (m3u only) like internal web Browser (using internal web browser you can open websites with videos)
89 | - Look below for all advance parameters/futures
90 |
91 | .
92 | .
93 | .
94 | .
95 | .
96 | .
97 |
98 | m3u Format supported:
99 |
100 | Support standard m3u format files like
101 |
102 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
103 | http://yourlink.m3u8
104 |
105 | Support your protected links with user agent or referer or both like
106 |
107 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
108 | http://yourlink.m3u8|user-agent=YOUR_AGENT&referer=YOUR_REFERER
109 | Alternate
110 | #EXTVLCOPT:http-user-agent=YOUR_AGENT
111 | #EXTVLCOPT:http-referer=YOUR_REFERER
112 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
113 | http://yourlink.m3u8
114 |
115 | Support Sopcast and acestream links.
116 |
117 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
118 | sop://broker.sopcast.com:@@@@@@@@@
119 |
120 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
121 | acestream://@@@@@@@@@
122 |
123 | Support youtube links
124 |
125 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
126 | https://www.youtube.com/watch?v=VIDEOID
127 |
128 | Support also host links (through wuffy player)
129 |
130 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
131 | httphost://@@@@@@@
132 |
133 | Support Dash videos with custom drm (license type support=widevine,clearkey,playready)
134 |
135 | Example 1:
136 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
137 | http://yourlink.mpd|license_type=widevine&license_key=LICENSE_KEY_LINK
138 |
139 | Example 1 alternate:
140 | #KODIPROP:inputstream.adaptive.license_type=widevine
141 | #KODIPROP:inputstream.adaptive.license_key=LICENSE_KEY_LINK
142 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
143 | http://yourlink.mpd
144 |
145 | Example 2:
146 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
147 | http://yourlink.mpd|license_type=widevine&license_key=LICENSE_KEY_LIN&user-agent=YOUR_AGENT&referer=YOUR_REFERER
148 |
149 | Example 2 alternate:
150 | #KODIPROP:inputstream.adaptive.license_type=widevine
151 | #KODIPROP:inputstream.adaptive.license_key=LICENSE_KEY_LINK
152 | #EXTVLCOPT:http-user-agent=YOUR_AGENT
153 | #EXTVLCOPT:http-referer=YOUR_REFERER
154 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
155 | http://yourlink.mpd
156 |
157 |
158 | Support m3u8 & Dash videos with stream headers and custom drm headers [4.01+] (license type support=widevine,clearkey,playready)
159 |
160 | Example:
161 |
162 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
163 | https://channel_LINK|license_type=widevine&license_key=LICENSE_KEY_LINK&stream_headers={header1=head1_link&header2=head2_link&header3=head3_link}&license_headers={header1=head1_link&header2=head2_link&header3=head3_link}
164 |
165 | .
166 | .
167 | .
168 | .
169 | .
170 | .
171 |
172 |
173 |
174 | Advance M3U supported Fuctions: (m3u ONLY, use ONLY for your own websites)
175 |
176 | Web site loading through an internal web browser and play the website video.
177 | Add at the end
178 |
179 | |webview zoom=%% scroll=x,y or |webdeskview zoom=%% scroll=x,y for desktop mode.
180 | .
181 |
182 | Example:
183 |
184 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
185 | http://@@@@@@@|webview zoom=100 scroll=50,100
186 |
187 | Web site loading through an internal web browser and play the website video in internal player
188 | Add at the end
189 |
190 | |autoweb zoom=%% scroll=x,y or |autodeskweb zoom=%% scroll=x,y for desktop mode.
191 |
192 | To use for example 2nd m3u8 add delay like
193 |
194 | |autodelayweb$$delay=2 zoom=%% scroll=x,y or |autodeskdelayweb$$delay=2 zoom=%% scroll=x,y for desktop mode.
195 | .
196 |
197 | Example:
198 |
199 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
200 | http://@@@@@@@|autodelayweb$$delay=2 zoom=100 scroll=50,100
201 |
202 | Support “get m3u8” methods from websites, gives you the opportunity to play a video from a site in your favorite player.
203 | Add at the end
204 |
205 | |webdig or |weballdig or |webfulldig.
206 | For desktop mode use
207 |
208 | |webdeskdig or |webdeskalldig or |webdeskfulldig
209 | .
210 |
211 | Example:
212 |
213 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
214 | http://@@@@@@@|weballdig
215 | Explanation 1 = For e.x webdeskalldig - desk mean use Desktop agent, all means use with m3u8 user-agent and referer.
216 | Explanation 2 = For e.x webdeskfulldig - desk mean use Desktop agent, full means use all m3u8 headers.
217 |
218 | Also support “get mp4,mpg” method from websites, gives you the opportunity to play a video from a site in your favorite player.
219 | Add at the end
220 |
221 | |webviddig or |webvidalldig or |webvidfulldig.
222 | .
223 |
224 | Example:
225 |
226 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
227 | http://@@@@@@@|webvidalldig
228 | Explanation 1 = For e.x webvidalldig - all means use with mp4 user-agent and referer.
229 | Explanation 2 = For e.x webvidfulldig - full means use all mp4 headers
230 |
231 | To avoid first m3u8 (choose which to use) use the delay.
232 | Add at the end
233 |
234 | |webdelaydig$$delay=ADD_NUMBER or |webdelayalldig$$delay=ADD_NUMBER or |webdelayfulldig$$delay=ADD_NUMBER.
235 | For desktop mode use
236 |
237 | |webdelaydeskdig$$delay=ADD_NUMBER or |webdelaydeskalldig$$delay=ADD_NUMBER or |webdelaydeskfulldig$$delay=ADD_NUMBER.
238 | .
239 |
240 | Example:
241 |
242 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
243 | http://@@@@@@@|webdelayalldig$$delay=2
244 | Explanation = For e.x webdelaydeskalldig$$delay=3 - delay means get 3rd m3u8 (avoid first 2), desk mean use Desktop agent, all means use with m3u8 user-agent and referer.
245 |
246 | For websites need referer to open use Referer.
247 | Add at the end
248 |
249 | |webreferdig$$referer=YOUR_REFERER or |webreferalldig$$referer=YOUR_REFERER or |webreferfulldig$$referer=YOUR_REFERER
250 |
251 | For desktop mode use
252 |
253 | |webreferdeskdig$$referer=YOUR_REFERER or |webreferdeskalldig$$referer=YOUR_REFERER or |webreferdeskfulldig$$referer=YOUR_REFERER
254 | .
255 |
256 | Example:
257 |
258 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
259 | http://@@@@@@@|webreferalldig$$referer=YOUR_REFERER
260 |
261 | For websites need referer to avoid first m3u8 use Referer and delay.
262 | Add at the end
263 |
264 | |webreferdelaydig$$referer=YOUR_REFERER or |webreferdelayalldig$$referer=YOUR_REFERER or |webreferdelayfulldig$$referer=YOUR_REFERER
265 |
266 | For desktop mode use
267 |
268 | |webreferdelaydeskdig$$referer=YOUR_REFERER or |webreferdelaydeskalldig$$referer=YOUR_REFERER or |webreferdelaydeskfulldig$$referer=YOUR_REFERER
269 | .
270 |
271 | Example:
272 |
273 | #EXTINF:-1 group-title=\"YOUR GROUP\" tvg-logo=\"LOGO LINK\",Channel name
274 | http://@@@@@@@|webreferdelayfulldig$$referer=YOUR_REFERER
275 |
276 | FOR MORE HELP ABOUT ADVANCE FUTURES email me.
277 |
278 |
279 |
280 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/README.md:
--------------------------------------------------------------------------------
1 | # Example For ULTIMATE IPTV PLUGIN-ADDON (V3-)
2 |
3 |
4 | Find it at Play store https://play.google.com/store/apps/details?id=com.m3uloader.player&hl=en
5 |
6 | How to Execute Ultimate IPTV Plugin-Addon from my app?
7 | See the example how to intent your app use Ultimate IPTV Plugin-Addon and load your Playlist. You have two option, Classic (phone optimized or for low end devices) and TvStyle (set-top box style). See updated Example.
8 |
9 | Example has 6 different Activities:
10 |
11 | -1- classic (Classic Style without EPG). Just sent your m3u to app.
12 |
13 | -2- classicEPG (Classic Style with EPG). Just sent your m3u and EPG File (uncompressed or compressed to .gz or .xz) to app.
14 |
15 | -3- classicXtream (Classic Style with XtreamCodes full support - livetv ,movies, series catchup,radio). Just sent your portal-username-password to app. Great got Premium IPTV Providers who dont want to spent money for an app.
16 |
17 | -4- tvstyle (tvstyle Style without EPG). Just sent your m3u and player (player1,player2,player3) to app.
18 |
19 | -5- tvstyleEPG (tvstyle Style with EPG). Just sent your m3u,EPG File (uncompressed or compressed to .gz or .xz) and player (player1,player2,player3)to app.
20 |
21 | -6- tvstyleXtream (tvstyle Style with XtreamCodes full support - livetv ,movies, series catchup,radio). Just sent your portal-username-password and player (player1,player2,player3) to app. Great got Premium IPTV Providers who dont want to spent money for an app.
22 |
23 | .
24 |
25 | For Example if you want to use tvstyleEPG Just edit tvstyleEPG.java with your m3u and EPG url. Then go to androidmanifest.xml and move Launcher to tvstyleEPG activity.
26 |
27 | Be sure have it in only one activity otherwise you may have to icons in your menu.
28 |
29 | .
30 |
31 | General Info about Ultimate IPTV Plugin-Addon:
32 |
33 | Its a plugin-addon which load m3u lists, can parse your playlists and show them in grid with logo when available, groups also supported.
34 | Support search function (add them as groups if your playlist has groups).
35 | Easy and fast choose groups with “Select Group” button or by pressing next or previous buttons.
36 | When you click a channel/video a video player dialog appears so you can choose the player you want (Default player can also selected).
37 | Has 3 internal players (can play a lot of Formats without any external player), internal youtube player but also support external players (youtube official app, MXPlayer, Vlc, Wuffy, Xplayer, Soptohttp and Acestream for P2P so far). Can regognice which player is able to play a link and show only the working one (through a dialog).
38 | Support LocalCast and WebViewCast for chromecast,DLNS and more
39 | Support Website video (using internal web browser open websites with videos)
40 | Exclusive: This app has also internal web Browser, so you can add official site links as a channel and this app will load site inside app ,then when video load you can fullscreen as you done on your browser (Look below how to enable web Browser).
41 | .
42 | .
43 | .
44 | .
45 | .
46 | .
47 |
48 | m3u Format supported:
49 |
50 | Support standard m3u format files like
51 |
52 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
53 |
54 | http://yourlink.m3u8
55 |
56 | .
57 |
58 | Support your protected links with user agent or referer or both like
59 |
60 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
61 |
62 | http://yourlink.m3u8|user-agent=YOUR_AGENT&referer=YOUR_REFERER
63 |
64 | .
65 |
66 | Support Sopcast and acestream links.
67 |
68 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
69 |
70 | sop://broker.sopcast.com:@@@@@@@@@
71 |
72 | .
73 |
74 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
75 |
76 | acestream://@@@@@@@@@
77 |
78 | .
79 |
80 | Support youtube links
81 |
82 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
83 |
84 | https://www.youtube.com/watch?v=VIDEOID
85 |
86 | .
87 |
88 | Support also host links
89 |
90 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
91 |
92 | httphost://@@@@@@@
93 |
94 | .
95 |
96 | Support wuffy protected links
97 |
98 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
99 |
100 | xmtv://@@@@@@@
101 |
102 | .
103 |
104 | Support website load through internal Web Browser and play the website video(add at the end |webview zoom=% scroll=x,y)
105 |
106 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
107 |
108 | http://@@@@@@@|webview zoom=100 scroll=50,100
109 |
110 | .
111 |
112 | Support website load through internal Web Browser and play the website video with autoplay feature if video wont load automatically with webview(add at the end |autoweb zoom=% scroll=x,y)
113 |
114 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
115 |
116 | http://@@@@@@@|autoweb zoom=120 scroll=50,100
117 |
118 | .
119 |
120 | Support full screen website Video load (using android webkit), supported for limited websites (add at the end |fullweb). Will open website in background and open video in fullscreen if recognised.
121 |
122 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
123 |
124 | http://@@@@@@@|fullweb
125 |
126 | .
127 |
128 | Also support “channel get” method for some sites (if you are lucky 0,01 %), which give you the chance to play a video from a site to your favorite player (add at the end |webdown or webnoagent).
129 |
130 | #EXTINF:-1 group-title="YOUR GROUP" tvg-logo="LOGO LINK",Channel name
131 |
132 | http://@@@@@@@|webdown
133 |
134 | . . . .
135 |
136 | "Video supported:" Support all video formats like m3u8, ts, rtmp, mms, mmsh, httphost, UDP etc.
137 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/app.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | generateDebugSources
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 28
5 | buildToolsVersion '28.0.3'
6 |
7 | defaultConfig {
8 | applicationId "com.iptvLoader.example"
9 | minSdkVersion 17
10 | targetSdkVersion 28
11 | versionCode 1
12 | versionName "1.00"
13 | }
14 |
15 | buildTypes {
16 | release {
17 | minifyEnabled true
18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
19 | }
20 | }
21 | }
22 |
23 | dependencies {
24 | implementation 'com.android.support:leanback-v17:28.0.0'
25 | }
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
11 |
12 |
13 |
19 |
20 |
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/java/com/iptvLoader/example/classic.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 |
10 |
11 |
12 | public class classic extends Activity {
13 |
14 | @Override
15 | protected void onStart()
16 | {
17 | super.onStart();
18 |
19 | try {
20 | Intent url = new Intent();
21 | url.setClassName("com.m3uloader.player", "com.m3uloader.player.Welcome");
22 | // Set your playlist url
23 | url.setData(Uri.parse("YOUR M3u URL"));
24 | startActivity(url);
25 | finish();
26 | } catch (ActivityNotFoundException e) {
27 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
28 | showIPTVPlaylistLoaderPluginNotFoundDialog();
29 | }
30 | }
31 |
32 | public void showIPTVPlaylistLoaderPluginNotFoundDialog()
33 | {
34 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
35 | builder.setTitle(R.string.not_installed_title);
36 | builder.setMessage(R.string.not_installed_message);
37 | builder.setPositiveButton(R.string.button_install,
38 | new DialogInterface.OnClickListener() {
39 | public void onClick(DialogInterface dialogInterface, int id)
40 | {
41 | try {
42 | // try to open Google Play app first
43 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
44 | } catch (ActivityNotFoundException e) {
45 | // if Google Play is not found for some reason, let's open browser
46 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
47 | }
48 | }
49 | });
50 | builder.setNegativeButton(R.string.button_cancel,
51 | new DialogInterface.OnClickListener() {
52 | public void onClick(DialogInterface dialogInterface, int id)
53 | {
54 | // if cancelled - just close the app
55 | finish();
56 | }
57 | });
58 | builder.setCancelable(false);
59 | builder.create().show();
60 | }
61 |
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/java/com/iptvLoader/example/classicEPG.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 |
10 |
11 | public class classicEPG extends Activity {
12 |
13 | @Override
14 | protected void onStart()
15 | {
16 | super.onStart();
17 |
18 | try {
19 | Intent url = new Intent();
20 | url.setClassName("com.m3uloader.player", "com.m3uloader.player.Welcome");
21 | // Set your playlist url
22 | url.setData(Uri.parse("YOUR M3u URL"));
23 | // Set your epg url
24 | url.putExtra("YOUR EPG URL");
25 | startActivity(url);
26 | finish();
27 | } catch (ActivityNotFoundException e) {
28 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
29 | showIPTVPlaylistLoaderPluginNotFoundDialog();
30 | }
31 | }
32 |
33 | public void showIPTVPlaylistLoaderPluginNotFoundDialog()
34 | {
35 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
36 | builder.setTitle(R.string.not_installed_title);
37 | builder.setMessage(R.string.not_installed_message);
38 | builder.setPositiveButton(R.string.button_install,
39 | new DialogInterface.OnClickListener() {
40 | public void onClick(DialogInterface dialogInterface, int id)
41 | {
42 | try {
43 | // try to open Google Play app first
44 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
45 | } catch (ActivityNotFoundException e) {
46 | // if Google Play is not found for some reason, let's open browser
47 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
48 | }
49 | }
50 | });
51 | builder.setNegativeButton(R.string.button_cancel,
52 | new DialogInterface.OnClickListener() {
53 | public void onClick(DialogInterface dialogInterface, int id)
54 | {
55 | // if cancelled - just close the app
56 | finish();
57 | }
58 | });
59 | builder.setCancelable(false);
60 | builder.create().show();
61 | }
62 |
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/java/com/iptvLoader/example/classicXtream.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 |
10 |
11 | public class classicXtream extends Activity {
12 |
13 | @Override
14 | protected void onStart()
15 | {
16 | super.onStart();
17 |
18 | try {
19 | Intent url = new Intent();
20 | url.setClassName("com.m3uloader.player", "com.m3uloader.xtream.WelcomeXtreamclassic");
21 | // Set Portal
22 | url.putExtra("portal","myportal.com:port");
23 | // Set username
24 | url.putExtra("username","username");
25 | // Set password
26 | url.putExtra("password","password");
27 | startActivity(url);
28 | finish();
29 | } catch (ActivityNotFoundException e) {
30 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
31 | showIPTVPlaylistLoaderPluginNotFoundDialog();
32 | }
33 | }
34 |
35 | public void showIPTVPlaylistLoaderPluginNotFoundDialog()
36 | {
37 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
38 | builder.setTitle(R.string.not_installed_title);
39 | builder.setMessage(R.string.not_installed_message);
40 | builder.setPositiveButton(R.string.button_install,
41 | new DialogInterface.OnClickListener() {
42 | public void onClick(DialogInterface dialogInterface, int id)
43 | {
44 | try {
45 | // try to open Google Play app first
46 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
47 | } catch (ActivityNotFoundException e) {
48 | // if Google Play is not found for some reason, let's open browser
49 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
50 | }
51 | }
52 | });
53 | builder.setNegativeButton(R.string.button_cancel,
54 | new DialogInterface.OnClickListener() {
55 | public void onClick(DialogInterface dialogInterface, int id)
56 | {
57 | // if cancelled - just close the app
58 | finish();
59 | }
60 | });
61 | builder.setCancelable(false);
62 | builder.create().show();
63 | }
64 |
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/java/com/iptvLoader/example/tvstyle.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 |
10 |
11 | public class tvstyle extends Activity {
12 |
13 | @Override
14 | protected void onStart()
15 | {
16 | super.onStart();
17 |
18 | try {
19 | Intent url = new Intent();
20 | url.setClassName("com.m3uloader.player", "com.m3uloader.player.Welcometvstyle");
21 | // Set your playlist url
22 | url.setData(Uri.parse("YOUR M3U URL"));
23 | //Set Player (player1, player2 or player3)
24 | url.putExtra("player","player1" );
25 | startActivity(url);
26 | finish();
27 | } catch (ActivityNotFoundException e) {
28 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
29 | showIPTVPlaylistLoaderPluginNotFoundDialog();
30 | }
31 | }
32 |
33 | public void showIPTVPlaylistLoaderPluginNotFoundDialog()
34 | {
35 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
36 | builder.setTitle(R.string.not_installed_title);
37 | builder.setMessage(R.string.not_installed_message);
38 | builder.setPositiveButton(R.string.button_install,
39 | new DialogInterface.OnClickListener() {
40 | public void onClick(DialogInterface dialogInterface, int id)
41 | {
42 | try {
43 | // try to open Google Play app first
44 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
45 | } catch (ActivityNotFoundException e) {
46 | // if Google Play is not found for some reason, let's open browser
47 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
48 | }
49 | }
50 | });
51 | builder.setNegativeButton(R.string.button_cancel,
52 | new DialogInterface.OnClickListener() {
53 | public void onClick(DialogInterface dialogInterface, int id)
54 | {
55 | // if cancelled - just close the app
56 | finish();
57 | }
58 | });
59 | builder.setCancelable(false);
60 | builder.create().show();
61 | }
62 |
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/java/com/iptvLoader/example/tvstyleEPG.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 |
10 |
11 | public class tvstyleEPG extends Activity {
12 |
13 | @Override
14 | protected void onStart()
15 | {
16 | super.onStart();
17 |
18 | try {
19 | Intent url = new Intent();
20 | url.setClassName("com.m3uloader.player", "com.m3uloader.player.Welcometvstyle");
21 |
22 | // Set your playlist url
23 | url.setData(Uri.parse("YOUT M3U URL"));
24 | // Set your epg url
25 | url.putExtra("EPG","YOUR EPG URL" );
26 | //Set Player (player1, player2 or player3)
27 | url.putExtra("player","player1" );
28 | startActivity(url);
29 | finish();
30 | } catch (ActivityNotFoundException e) {
31 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
32 | showIPTVPlaylistLoaderPluginNotFoundDialog();
33 | }
34 | }
35 |
36 | public void showIPTVPlaylistLoaderPluginNotFoundDialog()
37 | {
38 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
39 | builder.setTitle(R.string.not_installed_title);
40 | builder.setMessage(R.string.not_installed_message);
41 | builder.setPositiveButton(R.string.button_install,
42 | new DialogInterface.OnClickListener() {
43 | public void onClick(DialogInterface dialogInterface, int id)
44 | {
45 | try {
46 | // try to open Google Play app first
47 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
48 | } catch (ActivityNotFoundException e) {
49 | // if Google Play is not found for some reason, let's open browser
50 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
51 | }
52 | }
53 | });
54 | builder.setNegativeButton(R.string.button_cancel,
55 | new DialogInterface.OnClickListener() {
56 | public void onClick(DialogInterface dialogInterface, int id)
57 | {
58 | // if cancelled - just close the app
59 | finish();
60 | }
61 | });
62 | builder.setCancelable(false);
63 | builder.create().show();
64 | }
65 |
66 |
67 | }
68 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/java/com/iptvLoader/example/tvstyleXtreme.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 |
10 |
11 | public class tvstyleXtreme extends Activity {
12 |
13 | @Override
14 | protected void onStart()
15 | {
16 | super.onStart();
17 |
18 | try {
19 | Intent url = new Intent();
20 | url.setClassName("com.m3uloader.player", "com.m3uloader.xtream.WelcomeXtreamtvstyle");
21 |
22 | // Set Portal
23 | url.putExtra("portal","myportal.com:port");
24 | // Set username
25 | url.putExtra("username","username");
26 | // Set password
27 | url.putExtra("password","password");
28 | //Set Player (player1, player2 or player3)
29 | url.putExtra("player","player1" );
30 | startActivity(url);
31 | finish();
32 | } catch (ActivityNotFoundException e) {
33 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
34 | showIPTVPlaylistLoaderPluginNotFoundDialog();
35 | }
36 | }
37 |
38 | public void showIPTVPlaylistLoaderPluginNotFoundDialog()
39 | {
40 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
41 | builder.setTitle(R.string.not_installed_title);
42 | builder.setMessage(R.string.not_installed_message);
43 | builder.setPositiveButton(R.string.button_install,
44 | new DialogInterface.OnClickListener() {
45 | public void onClick(DialogInterface dialogInterface, int id)
46 | {
47 | try {
48 | // try to open Google Play app first
49 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
50 | } catch (ActivityNotFoundException e) {
51 | // if Google Play is not found for some reason, let's open browser
52 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
53 | }
54 | }
55 | });
56 | builder.setNegativeButton(R.string.button_cancel,
57 | new DialogInterface.OnClickListener() {
58 | public void onClick(DialogInterface dialogInterface, int id)
59 | {
60 | // if cancelled - just close the app
61 | finish();
62 | }
63 | });
64 | builder.setCancelable(false);
65 | builder.create().show();
66 | }
67 |
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IPTV Loader Example
5 |
6 | Settings
7 |
8 | Plugin \"IPTV m3u Playlist Loader\" required not installed.
9 | Please install \"IPTV Playlist Loader Plugin\" app from Google Play
10 | Install
11 | Cancel
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | repositories {
4 | jcenter()
5 | google()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.4.1'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | jcenter()
15 | google()
16 | mavenCentral()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V3- (OLD)/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Mar 29 12:17:11 EEST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
7 |
8 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/iptv.example-master.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V3- (OLD)/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/IPTV m3u Plugin-Addon Example.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/README.md:
--------------------------------------------------------------------------------
1 | # Example For Ultimate IPTV Plugin-Addon v4+
2 |
3 | Need to edit only the startmeup.java for integration. See the file for more info
4 | startmeup.java available at
5 | app\src\main\java\com\iptvLoader\example
6 |
7 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 33
5 | buildToolsVersion '33.0.1'
6 |
7 | defaultConfig {
8 | applicationId "com.iptvLoader.example"
9 | minSdkVersion 17
10 | targetSdkVersion 33
11 | versionCode 1
12 | versionName "1.00"
13 | }
14 |
15 | buildTypes {
16 | release {
17 | minifyEnabled true
18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
19 | }
20 | debug {
21 | minifyEnabled true
22 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
23 | }
24 |
25 | }
26 | }
27 |
28 | dependencies {
29 | implementation 'androidx.leanback:leanback:1.0.0'
30 | }
31 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
22 |
23 |
24 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/java/com/iptvLoader/example/startmeup.java:
--------------------------------------------------------------------------------
1 | package com.iptvLoader.example;
2 |
3 | import android.app.Activity;
4 | import android.app.AlertDialog;
5 | import android.content.ActivityNotFoundException;
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.content.pm.PackageInfo;
9 | import android.content.pm.PackageManager;
10 | import android.net.Uri;
11 |
12 |
13 | public class startmeup extends Activity {
14 |
15 | private int CLASSIC_m3u=0;
16 | private int TVSTYLE_m3u=1;
17 | private int CLASSIC_xtream_codes=2;
18 | private int TVSTYLE_xtream_codes=3;
19 | private int CLASSIC_mag_portal=4;
20 | private int TVSTYLE_mag_portal=5;
21 |
22 | @Override
23 | protected void onStart() {
24 | super.onStart();
25 |
26 | //add the type you want from above list (change classic_m3u to something from above list accordingly)
27 | int type=CLASSIC_m3u;
28 |
29 | boolean pluginInstalled = isAppInstalled("com.m3uloader.player");
30 |
31 | if (pluginInstalled) {
32 |
33 | boolean need_update_plugin=need_update();
34 |
35 | if (!need_update_plugin){
36 | try {
37 | Intent url = new Intent();
38 | url.setClassName("com.m3uloader.player", "com.m3uloader.player.startup");
39 | url.putExtra("type",type);
40 |
41 | //Change below cases depends on your type e.x if type 2 (classic_xtream_codes) edit only case 2
42 | switch (type) {
43 | case 0:
44 | // Set your m3u url
45 | url.setData(Uri.parse("YOUR M3u URL"));
46 | // Set your epg url if available,else delete below (url.putExtra("YOUR EPG URL");)
47 | // V4.20+ Delete below if your m3u include epg links. If you add the below will ignore epg links inside m3u.
48 | url.putExtra("EPG","YOUR EPG URL" );
49 | break;
50 | case 1:
51 | // Set your m3u url
52 | url.setData(Uri.parse("YOUR M3u URL"));
53 | // Set your epg url if available,else delete below (url.putExtra("YOUR EPG URL");)
54 | // V4.20+ Delete below if your m3u include epg links. If you add the below will ignore epg links inside m3u.
55 | url.putExtra("EPG","YOUR EPG URL" );
56 | break;
57 | case 2:
58 | // Set Portal
59 | url.putExtra("portal","http://my_portal.com:port");
60 | // Set username
61 | url.putExtra("username","username");
62 | // Set password
63 | url.putExtra("password","password");
64 | break;
65 | case 3:
66 | // Set Portal
67 | url.putExtra("portal","http://my_portal.com:port");
68 | // Set username
69 | url.putExtra("username","username");
70 | // Set password
71 | url.putExtra("password","password");
72 | break;
73 | case 4:
74 | // Set Mag Portal
75 | url.putExtra("portal","http://my_mag_portal.com:port/c");
76 | // Set mac number
77 | url.putExtra("mac","YOUR_MAC_NUMBER");
78 | // add below line and intent number 1 if you want the app to sent mag device details (like model) to server,else intent number 0 (V4.06+)
79 | url.putExtra("mag_info",0); //0 - dont send device details, 1 - send device details
80 | // add below line if you want the app to sent serial, device id and device id2 to the server (V4.06+)
81 | // sent a string extra in that format sn=YOUR_SERIAL&device_id=YOUR_DEVICE_ID1&device_id2=YOUR_DEVICE_ID2&signature=YOUR_SIGNATURE", see below
82 | String verification_example="sn=YOUR_SERIAL&device_id=YOUR_DEVICE_ID1&device_id2=YOUR_DEVICE_ID2&signature=YOUR_SIGNATURE";
83 | url.putExtra("verification", verification_example);
84 | // V4.20+ add the MAG device like below, default is MAG322 if nothing added.
85 | url.putExtra("MAG", "MAG322");
86 | break;
87 | case 5:
88 | // Set Mag Portal
89 | url.putExtra("portal","http://my_mag_portal.com:port/c");
90 | // Set mac number
91 | url.putExtra("mac","YOUR_MAC_NUMBER");
92 | // add below line and intent number 1 if you want the app to sent mag device details (like model) to server,else intent number 0 (V4.06+)
93 | url.putExtra("mag_info",0); //0 - dont send device details, 1 - send device details
94 | // add below line if you want the app to sent serial, device id and device id2 to the server (V4.06+)
95 | // sent a string extra in that format sn=YOUR_SERIAL&device_id=YOUR_DEVICE_ID1&device_id2=YOUR_DEVICE_ID2&signature=YOUR_SIGNATURE", see below
96 | String verification_example2="sn=YOUR_SERIAL&device_id=YOUR_DEVICE_ID1&device_id2=YOUR_DEVICE_ID2&signature=YOUR_SIGNATURE";
97 | url.putExtra("verification", verification_example2);
98 | // V4.20+ add the MAG device like below, default is MAG322 if nothing added.
99 | url.putExtra("MAG", "MAG322");
100 | break;
101 | }
102 | startActivity(url);
103 | finishAffinity();
104 | } catch (ActivityNotFoundException e) {
105 | // IPTV m3u Playlist Loader app is not installed, let's ask the user to install it.
106 | showIPTVPlaylistLoaderPluginNotFoundDialog();
107 | }
108 | }
109 | else{
110 | showIPTVPlaylistLoaderPluginOldDialog();
111 | }
112 |
113 | }
114 | else {
115 | showIPTVPlaylistLoaderPluginNotFoundDialog();
116 | }
117 |
118 |
119 | }
120 |
121 |
122 |
123 | public void showIPTVPlaylistLoaderPluginNotFoundDialog() {
124 | AlertDialog.Builder builder = new AlertDialog.Builder(this);
125 | builder.setTitle(R.string.not_installed_title);
126 | builder.setMessage(R.string.not_installed_message);
127 | builder.setPositiveButton(R.string.button_install,
128 | new DialogInterface.OnClickListener() {
129 | public void onClick(DialogInterface dialogInterface, int id)
130 | {
131 | try {
132 | // try to open Google Play app first
133 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
134 | } catch (ActivityNotFoundException e) {
135 | // if Google Play is not found for some reason, let's open browser
136 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
137 | }
138 | finish();
139 | }
140 | });
141 | builder.setNegativeButton(R.string.button_cancel,
142 | new DialogInterface.OnClickListener() {
143 | public void onClick(DialogInterface dialogInterface, int id)
144 | {
145 | // if cancelled - just close the app
146 | finish();
147 | }
148 | });
149 | builder.setCancelable(false);
150 | builder.create().show();
151 | }
152 |
153 | public void showIPTVPlaylistLoaderPluginOldDialog() {
154 | //lower version installed
155 | android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);
156 | builder.setTitle(R.string.old_installed_title);
157 | builder.setMessage(getResources().getString(R.string.app_name)+" "+getResources().getString(R.string.old_installed_message));
158 | builder.setPositiveButton(R.string.button_update,
159 | new DialogInterface.OnClickListener() {
160 | public void onClick(DialogInterface dialogInterface, int id) {
161 | try {
162 | // try to open Google Play app first
163 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.m3uloader.player")));
164 | } catch (ActivityNotFoundException e) {
165 | // if Google Play is not found for some reason, let's open browser
166 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.m3uloader.player")));
167 | }
168 | finish();
169 | }
170 | });
171 | builder.setNegativeButton(R.string.button_cancel,
172 | new DialogInterface.OnClickListener() {
173 | public void onClick(DialogInterface dialogInterface, int id) {
174 | dialogInterface.dismiss();
175 | finish();
176 |
177 | }
178 | });
179 | builder.setCancelable(false);
180 | builder.create().show();
181 | }
182 |
183 | protected boolean need_update() {
184 | boolean needed;
185 | try{
186 | PackageInfo pInfo = this.getPackageManager().getPackageInfo("com.m3uloader.player", 0);
187 | int version = pInfo.versionCode;
188 | String lower = "112" ;
189 |
190 | int low = Integer.parseInt(lower);
191 |
192 | if (version >= low) {
193 | needed=false;
194 | }
195 | else{
196 | needed=true;
197 | }
198 |
199 | } catch (PackageManager.NameNotFoundException e) {
200 | needed=true;
201 | }
202 |
203 | return needed;
204 | }
205 |
206 | protected boolean isAppInstalled(String uri) {
207 | PackageManager pm = getPackageManager();
208 | try {
209 | pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
210 | return true;
211 | } catch (PackageManager.NameNotFoundException e) {
212 |
213 | }
214 |
215 | return false;
216 | }
217 | }
218 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IPTV Loader Example
5 |
6 | Settings
7 |
8 | \"Ultimate IPTV Plugin-Addon\" required not installed.
9 | Please install \"Ultimate IPTV Plugin-Addon\" app from Google Play
10 | Install
11 | Cancel
12 | Old Version of \"Ultimate IPTV Plugin-Addon\" installed.
13 | require \"Ultimate IPTV Plugin-Addon\" 4.00 and up. Please update Plugin through Google Play.
14 | "Update From\nPlay Store
15 |
16 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/build.gradle:
--------------------------------------------------------------------------------
1 |
2 | buildscript {
3 | repositories {
4 | mavenCentral()
5 | google()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:7.3.1'
9 | }
10 | }
11 |
12 |
13 | allprojects {
14 | repositories {
15 | google()
16 | mavenCentral()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/gradle.properties:
--------------------------------------------------------------------------------
1 | android.useAndroidX=true
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/greatdeveloping/m3u-Loader-Plugin/95ac3b7b2ec6978a621446757f9068d437af1daa/Ultimate IPTV Plugin-Addon V4+/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jan 10 15:10:49 EET 2022
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/Ultimate IPTV Plugin-Addon V4+/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------