From 9d5ffe413481c8f32970581c634dc97b18aa3bd6 Mon Sep 17 00:00:00 2001 From: istiakshihab Date: Mon, 8 Jul 2019 04:26:53 +0600 Subject: [PATCH] Big Big Changes --- .idea/caches/build_file_checksums.ser | Bin 535 -> 535 bytes .idea/caches/gradle_models.ser | Bin 100883 -> 156006 bytes .idea/modules.xml | 1 - app/build.gradle | 4 +- app/google-services.json | 48 +++++ app/src/main/AndroidManifest.xml | 27 +-- .../streammusic/Home/LiveFragment.java | 26 --- .../com/chameleon/streammusic/Search/RJ.java | 192 ------------------ .../{streammusic => sustcast}/MainScreen.java | 10 +- .../authentication}/ApiLogin.java | 22 +- .../authentication}/ApiLogout.java | 9 +- .../authentication}/ApiRegistration.java | 25 +-- .../authentication}/newResetPassword.java | 19 +- .../resetPasswordActivity.java | 13 +- .../chatHandler}/ChatActvity.java | 11 +- .../chatHandler}/ChatArrayAdapter.java | 6 +- .../chatHandler}/ChatMessage.java | 2 +- .../chatHandler}/DeleteMessage.java | 2 +- .../credit}/credit_page.java | 4 +- .../data/model/Output.java | 2 +- .../data/model/logoutResponse.java | 2 +- .../data/model/outer.java | 2 +- .../data/model/signupResponse.java | 2 +- .../data/remote/ApiUtils.java | 2 +- .../data/remote/RetrofitClient.java | 2 +- .../data/remote/UserClient.java | 8 +- .../favorites}/feedback.java | 22 +- .../fontOverride}/FontsOverride.java | 2 +- .../Home => sustcast/home}/Home.java | 24 ++- .../home/HomeFragment.java} | 32 ++- .../chameleon/sustcast/home/LiveFragment.java | 56 +++++ .../home}/SectionsPagerAdapter.java | 2 +- .../home/TrendingFragment.java} | 9 +- .../Mood => sustcast/mood}/Facebook.java | 8 +- .../utils}/BottomNavigationViewHelper.java | 8 +- .../Utils => sustcast/utils}/desktop.ini | 0 .../main/res/layout/activity_api_logout.xml | 2 +- app/src/main/res/layout/activity_chat.xml | 2 +- .../main/res/layout/activity_credit_page.xml | 2 +- app/src/main/res/layout/activity_feedback.xml | 2 +- app/src/main/res/layout/activity_home.xml | 139 ++++++------- app/src/main/res/layout/activity_main.xml | 2 +- .../main/res/layout/activity_main_screen.xml | 2 +- app/src/main/res/layout/activity_rj.xml | 81 -------- app/src/main/res/layout/fragment_live.xml | 11 +- app/src/main/res/layout/item_mine_message.xml | 3 +- .../main/res/layout/item_other_message.xml | 3 +- app/src/main/res/values/strings.xml | 2 + build.gradle | 2 + 49 files changed, 347 insertions(+), 510 deletions(-) create mode 100644 app/google-services.json delete mode 100644 app/src/main/java/com/chameleon/streammusic/Home/LiveFragment.java delete mode 100644 app/src/main/java/com/chameleon/streammusic/Search/RJ.java rename app/src/main/java/com/chameleon/{streammusic => sustcast}/MainScreen.java (84%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/authentication}/ApiLogin.java (86%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/authentication}/ApiLogout.java (67%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/authentication}/ApiRegistration.java (84%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/authentication}/newResetPassword.java (85%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/authentication}/resetPasswordActivity.java (89%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/chatHandler}/ChatActvity.java (98%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/chatHandler}/ChatArrayAdapter.java (93%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/chatHandler}/ChatMessage.java (95%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/chatHandler}/DeleteMessage.java (96%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/credit}/credit_page.java (80%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/model/Output.java (91%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/model/logoutResponse.java (88%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/model/outer.java (87%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/model/signupResponse.java (87%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/remote/ApiUtils.java (85%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/remote/RetrofitClient.java (95%) rename app/src/main/java/com/chameleon/{streammusic => sustcast}/data/remote/UserClient.java (88%) rename app/src/main/java/com/chameleon/{streammusic/Favourites => sustcast/favorites}/feedback.java (91%) rename app/src/main/java/com/chameleon/{streammusic => sustcast/fontOverride}/FontsOverride.java (95%) rename app/src/main/java/com/chameleon/{streammusic/Home => sustcast/home}/Home.java (92%) rename app/src/main/java/com/chameleon/{streammusic/Home/TrendingFragment.java => sustcast/home/HomeFragment.java} (78%) create mode 100644 app/src/main/java/com/chameleon/sustcast/home/LiveFragment.java rename app/src/main/java/com/chameleon/{streammusic/Home => sustcast/home}/SectionsPagerAdapter.java (95%) rename app/src/main/java/com/chameleon/{streammusic/Home/HomeFragment.java => sustcast/home/TrendingFragment.java} (67%) rename app/src/main/java/com/chameleon/{streammusic/Mood => sustcast/mood}/Facebook.java (92%) rename app/src/main/java/com/chameleon/{streammusic/Utils => sustcast/utils}/BottomNavigationViewHelper.java (92%) rename app/src/main/java/com/chameleon/{streammusic/Utils => sustcast/utils}/desktop.ini (100%) delete mode 100644 app/src/main/res/layout/activity_rj.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index cee9d84ef213d3e084093aa35c34a89a2b19dbdc..6682b96fb42b365c2382432180bf96fc6f5c544f 100644 GIT binary patch delta 53 zcmV-50LuTD1eXMmm;}yqDwUC(pAbU$J%h3c+7#Ag7KgRXne3BG0lN`$;5lm8k`_1x LZmpJq6Z%qkgI*XV delta 53 zcmV-50LuTD1eXMmm;}ktDAbXhpAbvBvkL#%G*^e6r@MTxjnR`!0lN`CrG7jl_`~(b La(Fy?cok-NyJi{o diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index b4fe7d77b34d4d6233ca485e34996dc3ddf501a2..245bcbc4224d2ea479ab209af89caf33d5dd00fa 100644 GIT binary patch literal 156006 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ℑJ_Yt+_7)@OvJa~wBbTzz_3U#S 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 literal 100883 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 diff --git a/.idea/modules.xml b/.idea/modules.xml index a50c8f6..769cbb2 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,6 @@ - diff --git a/app/build.gradle b/app/build.gradle index c76f3fe..b0717a9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,10 @@ apply plugin: 'com.android.application' +apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 26 defaultConfig { - applicationId "com.chameleon.streammusic" + applicationId "com.chameleon.sustcast" minSdkVersion 16 targetSdkVersion 26 versionCode 1 @@ -21,6 +22,7 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.google.firebase:firebase-ads:17.0.0' androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..455b0f6 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,48 @@ +{ + "project_info": { + "project_number": "903833784828", + "firebase_url": "https://sustcast-18565.firebaseio.com", + "project_id": "sustcast-18565", + "storage_bucket": "sustcast-18565.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:903833784828:android:99477a53d219b25c", + "android_client_info": { + "package_name": "com.chameleon.sustcast" + } + }, + "oauth_client": [ + { + "client_id": "903833784828-2qg3dmvinjpit91jeb0j17uih917ipdb.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.chameleon.sustcast", + "certificate_hash": "5d2b8fc9396c20db3fdb9f242584394ba95eb83a" + } + }, + { + "client_id": "903833784828-kqb3dg09jt609k426m3kdq1pqju9gc0t.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDkcOmpX8OakVhioyCtRqospAyj7eIIshk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "903833784828-kqb3dg09jt609k426m3kdq1pqju9gc0t.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3cf7e3e..345ec62 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,24 +18,27 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - - - - + + + + + + - - - - - - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/chameleon/streammusic/Home/LiveFragment.java b/app/src/main/java/com/chameleon/streammusic/Home/LiveFragment.java deleted file mode 100644 index 3c3dd0e..0000000 --- a/app/src/main/java/com/chameleon/streammusic/Home/LiveFragment.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.chameleon.streammusic.Home; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.chameleon.streammusic.R; - -/** - * Created by HEMAYEET on 1/3/2018. - */ - -public class LiveFragment extends Fragment { - private static final String TAG = "Live Fragment"; - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_live, container, false); - - return view; - } -} diff --git a/app/src/main/java/com/chameleon/streammusic/Search/RJ.java b/app/src/main/java/com/chameleon/streammusic/Search/RJ.java deleted file mode 100644 index b770d46..0000000 --- a/app/src/main/java/com/chameleon/streammusic/Search/RJ.java +++ /dev/null @@ -1,192 +0,0 @@ -package com.chameleon.streammusic.Search; - -import android.content.Context; -import android.os.Handler; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.chameleon.streammusic.R; -import com.chameleon.streammusic.Utils.BottomNavigationViewHelper; -import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.Socket; -import java.net.UnknownHostException; -import java.util.LinkedList; -import java.util.Queue; - -public class RJ extends AppCompatActivity { - - private static final String TAG = "RJ"; - private static final int ACTIVITY_NUM = 1; - private Context mContext = RJ.this; - - static final String serverName = "103.84.159.230"; // - static final int port = 50001; - static OutputStream outToServer; - public static DataOutputStream out; - static InputStream inFromServer; - public static DataInputStream in; - static Socket socket; - final String token = "siojdioajs21839712987391872ahsdhkjshkjdh21983912doiasoidoias"; - final String userName = "puhi"; - public static ClientThread client; - public static Thread T; - static int msgFlg = 0; - final Queue recieveMsg = new LinkedList(); - LinearLayout linearLayout; - - static String msgALLcontent = "RJ: Hey It's RJ Meow. Want to listen to the song you want to hear now?" + - "Just send me a message and I will play it for you :D. " + - "Song request format\nREQ___" + - "Example: REQ_Shuhan Mirza_Linkin Park_Numb"+"\n"; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_rj); - // linearLayout = (LinearLayout) findViewById(R.id.chatlayout); - //linearLayout.setOrientation(LinearLayout.VERTICAL); - //setContentView(linearLayout); - //linearLayout.setOrientation(LinearLayout.VERTICAL); - Log.d(TAG, "onCreate: started"); - setupBottomNavigationView(); - - - final TextView msgAll = (TextView) findViewById(R.id.msgAll); - final Button button = (Button) findViewById(R.id.button1); - final EditText msg = (EditText) findViewById(R.id.msg); - - msgAll.setText(msgALLcontent); - - button.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - - -// TextView newTextView = new TextView(RJ.this); -// newTextView.setText("my name"); -// linearLayout.addView(newTextView); - - String str = msg.getText().toString(); - msgAll.append("\nYou: "+ str); - msg.setText(""); - - msgFlg = 1; - - if(T == null || !T.isAlive()) { - client = new ClientThread(str); - T = new Thread(client); - T.start(); - } - else - { - System.out.println("bipod"); - } - } - } - - ); - - final Handler handler = new Handler(); - Runnable runnable = new Runnable() { - @Override - public void run() { - /* do what you need to do */ - try{ - if(msgFlg == 1) - { - if(!T.isAlive()) - { - String str = recieve(); - - msgAll.append("\nRJ: " + str); - - if (str.length() > 0) msgFlg = 0; - } - } - }catch (Exception ex) - { - msgAll.append( ex.toString()); - } - // if(msgFlg == 1) System.out.println("waiting for msg"); - - /* and here comes the "trick" */ - handler.postDelayed(this, 100); - } - }; - - handler.postDelayed(runnable, 100); - //http://www.mopri.de/2010/timertask-bad-do-it-the-android-way-use-a-handler/ - } - - class ClientThread implements Runnable { - - Queue sendMsg = new LinkedList(); - String input, output; - String query; - ClientThread(String query) - { - this.query = query; - } - @Override - public void run() { - try { - socket = new Socket(serverName, port); - outToServer = socket.getOutputStream(); - out = new DataOutputStream(outToServer); - - out.writeUTF(token + " " + userName); - - inFromServer = socket.getInputStream(); - in = new DataInputStream(inFromServer); - - out.writeUTF(query); - - while (in.available() <= 0); - - input = in.readUTF(); - recieveMsg.offer(input); - - socket.close(); - - } catch (UnknownHostException e1) { - e1.printStackTrace(); - } catch (IOException e1) { - e1.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - String recieve() - { - String str = ""; - if(!recieveMsg.isEmpty()) - str = (String) recieveMsg.remove(); - - return str; - } - - private void setupBottomNavigationView(){ - Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView"); - BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar); - BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx); - BottomNavigationViewHelper.enableNavigation(mContext, bottomNavigationViewEx); - Menu menu = bottomNavigationViewEx.getMenu(); - MenuItem menuItem = menu.getItem(ACTIVITY_NUM); - menuItem.setChecked(true); - } -} diff --git a/app/src/main/java/com/chameleon/streammusic/MainScreen.java b/app/src/main/java/com/chameleon/sustcast/MainScreen.java similarity index 84% rename from app/src/main/java/com/chameleon/streammusic/MainScreen.java rename to app/src/main/java/com/chameleon/sustcast/MainScreen.java index 6b4a595..4ff3970 100644 --- a/app/src/main/java/com/chameleon/streammusic/MainScreen.java +++ b/app/src/main/java/com/chameleon/sustcast/MainScreen.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast; import android.content.Intent; import android.support.v7.app.AppCompatActivity; @@ -8,7 +8,9 @@ import android.widget.ImageView; import android.widget.TextView; -import com.chameleon.streammusic.Home.Home; +import com.chameleon.streammusic.R; +import com.chameleon.sustcast.fontOverride.FontsOverride; +import com.chameleon.sustcast.home.Home; public class MainScreen extends AppCompatActivity { private TextView tvsplash; @@ -21,8 +23,8 @@ protected void onCreate(Bundle savedInstanceState) { FontsOverride.setDefaultFont(this,"MONOSPACE", "doppio_one.ttf"); setContentView(R.layout.activity_main_screen); - tvsplash = (TextView) findViewById(R.id.tvsplash); - iv1 = (ImageView) findViewById(R.id.iv1); + tvsplash = findViewById(R.id.tvsplash); + iv1 = findViewById(R.id.iv1); Animation myanim = AnimationUtils.loadAnimation(this, R.anim.mytransition); tvsplash.startAnimation(myanim); iv1.startAnimation(myanim); diff --git a/app/src/main/java/com/chameleon/streammusic/ApiLogin.java b/app/src/main/java/com/chameleon/sustcast/authentication/ApiLogin.java similarity index 86% rename from app/src/main/java/com/chameleon/streammusic/ApiLogin.java rename to app/src/main/java/com/chameleon/sustcast/authentication/ApiLogin.java index 1a0ddd4..254d6a8 100644 --- a/app/src/main/java/com/chameleon/streammusic/ApiLogin.java +++ b/app/src/main/java/com/chameleon/sustcast/authentication/ApiLogin.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.authentication; import android.content.Intent; import android.os.Bundle; @@ -11,10 +11,12 @@ import android.widget.EditText; import android.widget.Toast; -import com.chameleon.streammusic.Home.Home; -import com.chameleon.streammusic.data.model.outer; -import com.chameleon.streammusic.data.remote.ApiUtils; -import com.chameleon.streammusic.data.remote.UserClient; +import com.chameleon.sustcast.fontOverride.FontsOverride; +import com.chameleon.sustcast.home.Home; +import com.chameleon.streammusic.R; +import com.chameleon.sustcast.data.model.outer; +import com.chameleon.sustcast.data.remote.ApiUtils; +import com.chameleon.sustcast.data.remote.UserClient; import com.google.gson.GsonBuilder; import retrofit2.Call; @@ -36,12 +38,12 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); - mEmailField = (EditText) findViewById(R.id.entryEmailLog); - mPasswordField = (EditText) findViewById(R.id.entryPasswordLog); + mEmailField = findViewById(R.id.entryEmailLog); + mPasswordField = findViewById(R.id.entryPasswordLog); - mLoginButton = (Button) findViewById(R.id.buttonLogin); - mRegisterButton = (Button)findViewById(R.id.buttonSignUp); - mForgetPasswordButton = (Button) findViewById(R.id.buttonForget); + mLoginButton = findViewById(R.id.buttonLogin); + mRegisterButton = findViewById(R.id.buttonSignUp); + mForgetPasswordButton = findViewById(R.id.buttonForget); mAPIService = ApiUtils.getAPIService(); diff --git a/app/src/main/java/com/chameleon/streammusic/ApiLogout.java b/app/src/main/java/com/chameleon/sustcast/authentication/ApiLogout.java similarity index 67% rename from app/src/main/java/com/chameleon/streammusic/ApiLogout.java rename to app/src/main/java/com/chameleon/sustcast/authentication/ApiLogout.java index 0d3a67b..3631445 100644 --- a/app/src/main/java/com/chameleon/streammusic/ApiLogout.java +++ b/app/src/main/java/com/chameleon/sustcast/authentication/ApiLogout.java @@ -1,11 +1,12 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.authentication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ProgressBar; -import com.chameleon.streammusic.data.remote.ApiUtils; -import com.chameleon.streammusic.data.remote.UserClient; +import com.chameleon.streammusic.R; +import com.chameleon.sustcast.data.remote.ApiUtils; +import com.chameleon.sustcast.data.remote.UserClient; public class ApiLogout extends AppCompatActivity { @@ -20,7 +21,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_api_logout); mAPIService = ApiUtils.getAPIService(); - spinner = (ProgressBar) findViewById(R.id.pBarlogout); + spinner = findViewById(R.id.pBarlogout); } diff --git a/app/src/main/java/com/chameleon/streammusic/ApiRegistration.java b/app/src/main/java/com/chameleon/sustcast/authentication/ApiRegistration.java similarity index 84% rename from app/src/main/java/com/chameleon/streammusic/ApiRegistration.java rename to app/src/main/java/com/chameleon/sustcast/authentication/ApiRegistration.java index 2d06f85..4d1ef6c 100644 --- a/app/src/main/java/com/chameleon/streammusic/ApiRegistration.java +++ b/app/src/main/java/com/chameleon/sustcast/authentication/ApiRegistration.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.authentication; import android.content.Intent; import android.os.Bundle; @@ -10,9 +10,10 @@ import android.widget.ProgressBar; import android.widget.Toast; - import com.chameleon.streammusic.data.model.signupResponse; - import com.chameleon.streammusic.data.remote.ApiUtils; - import com.chameleon.streammusic.data.remote.UserClient; + import com.chameleon.streammusic.R; + import com.chameleon.sustcast.data.model.signupResponse; + import com.chameleon.sustcast.data.remote.ApiUtils; + import com.chameleon.sustcast.data.remote.UserClient; import retrofit2.Call; import retrofit2.Callback; @@ -38,16 +39,16 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_api_registration); - mNameEntry = (EditText) findViewById(R.id.entryName); - mEmailEntry = (EditText) findViewById(R.id.entryEmail); - mPasswordEntry = (EditText) findViewById(R.id.entryPassword); - mCpasswordEntry = (EditText) findViewById(R.id.entryCpassword); - mContact = (EditText) findViewById(R.id.entryContact); - mRegNo = (EditText) findViewById(R.id.entryRegNo); - mDept = (EditText) findViewById(R.id.entryDept1); + mNameEntry = findViewById(R.id.entryName); + mEmailEntry = findViewById(R.id.entryEmail); + mPasswordEntry = findViewById(R.id.entryPassword); + mCpasswordEntry = findViewById(R.id.entryCpassword); + mContact = findViewById(R.id.entryContact); + mRegNo = findViewById(R.id.entryRegNo); + mDept = findViewById(R.id.entryDept1); mAPIService = ApiUtils.getAPIService(); - mTestButton = (Button) findViewById(R.id.testButton); + mTestButton = findViewById(R.id.testButton); //spinner = findViewById(R.id.pBarreg); mTestButton.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/chameleon/streammusic/newResetPassword.java b/app/src/main/java/com/chameleon/sustcast/authentication/newResetPassword.java similarity index 85% rename from app/src/main/java/com/chameleon/streammusic/newResetPassword.java rename to app/src/main/java/com/chameleon/sustcast/authentication/newResetPassword.java index 4293e93..5ce416e 100644 --- a/app/src/main/java/com/chameleon/streammusic/newResetPassword.java +++ b/app/src/main/java/com/chameleon/sustcast/authentication/newResetPassword.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.authentication; import android.content.Intent; import android.os.Bundle; @@ -10,8 +10,9 @@ import android.widget.ProgressBar; import android.widget.Toast; -import com.chameleon.streammusic.data.remote.ApiUtils; -import com.chameleon.streammusic.data.remote.UserClient; +import com.chameleon.streammusic.R; +import com.chameleon.sustcast.data.remote.ApiUtils; +import com.chameleon.sustcast.data.remote.UserClient; import com.google.gson.JsonElement; import retrofit2.Call; @@ -34,12 +35,12 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_reset_password); - mEmail = (EditText) findViewById(R.id.sendEmail); - mPassword = (EditText) findViewById(R.id.sendPassword); - mCpassword = (EditText) findViewById(R.id.sendCpassword); - mToken = (EditText) findViewById(R.id.sendToken); - mSend = (Button) findViewById(R.id.sendInfo); - spinner = (ProgressBar) findViewById(R.id.pBarresetnew); + mEmail = findViewById(R.id.sendEmail); + mPassword = findViewById(R.id.sendPassword); + mCpassword = findViewById(R.id.sendCpassword); + mToken = findViewById(R.id.sendToken); + mSend = findViewById(R.id.sendInfo); + spinner = findViewById(R.id.pBarresetnew); mAPIService = ApiUtils.getAPIService(); mSend.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/chameleon/streammusic/resetPasswordActivity.java b/app/src/main/java/com/chameleon/sustcast/authentication/resetPasswordActivity.java similarity index 89% rename from app/src/main/java/com/chameleon/streammusic/resetPasswordActivity.java rename to app/src/main/java/com/chameleon/sustcast/authentication/resetPasswordActivity.java index 453dffa..e63615d 100644 --- a/app/src/main/java/com/chameleon/streammusic/resetPasswordActivity.java +++ b/app/src/main/java/com/chameleon/sustcast/authentication/resetPasswordActivity.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.authentication; import android.content.Intent; import android.os.Bundle; @@ -11,8 +11,9 @@ import android.widget.ProgressBar; import android.widget.Toast; -import com.chameleon.streammusic.data.remote.ApiUtils; -import com.chameleon.streammusic.data.remote.UserClient; +import com.chameleon.streammusic.R; +import com.chameleon.sustcast.data.remote.ApiUtils; +import com.chameleon.sustcast.data.remote.UserClient; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; @@ -32,9 +33,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_reset_password); - mEmailText = (EditText) findViewById(R.id.resetEmail); - mResetButton = (Button) findViewById(R.id.resetButton); - spinner = (ProgressBar) findViewById(R.id.pBarreset); + mEmailText = findViewById(R.id.resetEmail); + mResetButton = findViewById(R.id.resetButton); + spinner = findViewById(R.id.pBarreset); mAPIService = ApiUtils.getAPIService(); diff --git a/app/src/main/java/com/chameleon/streammusic/ChatActvity.java b/app/src/main/java/com/chameleon/sustcast/chatHandler/ChatActvity.java similarity index 98% rename from app/src/main/java/com/chameleon/streammusic/ChatActvity.java rename to app/src/main/java/com/chameleon/sustcast/chatHandler/ChatActvity.java index 71e7e27..69ca99f 100644 --- a/app/src/main/java/com/chameleon/streammusic/ChatActvity.java +++ b/app/src/main/java/com/chameleon/sustcast/chatHandler/ChatActvity.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.chatHandler; import android.Manifest; import android.app.FragmentManager; @@ -9,7 +9,6 @@ import android.content.res.AssetManager; import android.database.Cursor; import android.net.Uri; -import android.nfc.Tag; import android.provider.ContactsContract; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; @@ -23,6 +22,8 @@ import android.widget.ListView; import android.widget.Toast; +import com.chameleon.streammusic.R; + import org.alicebot.ab.AIMLProcessor; import org.alicebot.ab.Bot; import org.alicebot.ab.Chat; @@ -55,10 +56,10 @@ public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_chat); - buttonSend = (ImageView) findViewById(R.id.send); - listView = (ListView) findViewById(R.id.msgview); + buttonSend = findViewById(R.id.send); + listView = findViewById(R.id.msgview); chatArrayAdapter = new ChatArrayAdapter(getApplicationContext(), R.layout.right); - chatText = (EditText) findViewById(R.id.msg); + chatText = findViewById(R.id.msg); if (ActivityCompat.checkSelfPermission(ChatActvity.this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED | ActivityCompat.checkSelfPermission(ChatActvity.this, diff --git a/app/src/main/java/com/chameleon/streammusic/ChatArrayAdapter.java b/app/src/main/java/com/chameleon/sustcast/chatHandler/ChatArrayAdapter.java similarity index 93% rename from app/src/main/java/com/chameleon/streammusic/ChatArrayAdapter.java rename to app/src/main/java/com/chameleon/sustcast/chatHandler/ChatArrayAdapter.java index 715b7ec..b3f7727 100644 --- a/app/src/main/java/com/chameleon/streammusic/ChatArrayAdapter.java +++ b/app/src/main/java/com/chameleon/sustcast/chatHandler/ChatArrayAdapter.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.chatHandler; /** * Created by Yashasvi on 15-04-2017. @@ -10,6 +10,8 @@ import android.widget.ArrayAdapter; import android.widget.TextView; +import com.chameleon.streammusic.R; + import java.util.ArrayList; import java.util.List; @@ -48,7 +50,7 @@ public View getView(int position, View convertView, ViewGroup parent) { }else{ row = inflater.inflate(R.layout.left, parent, false); } - chatText = (TextView) row.findViewById(R.id.msgr); + chatText = row.findViewById(R.id.msgr); chatText.setText(chatMessageObj.message); return row; } diff --git a/app/src/main/java/com/chameleon/streammusic/ChatMessage.java b/app/src/main/java/com/chameleon/sustcast/chatHandler/ChatMessage.java similarity index 95% rename from app/src/main/java/com/chameleon/streammusic/ChatMessage.java rename to app/src/main/java/com/chameleon/sustcast/chatHandler/ChatMessage.java index b798c45..01c0769 100644 --- a/app/src/main/java/com/chameleon/streammusic/ChatMessage.java +++ b/app/src/main/java/com/chameleon/sustcast/chatHandler/ChatMessage.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.chatHandler; import android.os.Parcel; import android.os.Parcelable; diff --git a/app/src/main/java/com/chameleon/streammusic/DeleteMessage.java b/app/src/main/java/com/chameleon/sustcast/chatHandler/DeleteMessage.java similarity index 96% rename from app/src/main/java/com/chameleon/streammusic/DeleteMessage.java rename to app/src/main/java/com/chameleon/sustcast/chatHandler/DeleteMessage.java index 27dfb8d..0bc255a 100644 --- a/app/src/main/java/com/chameleon/streammusic/DeleteMessage.java +++ b/app/src/main/java/com/chameleon/sustcast/chatHandler/DeleteMessage.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.chatHandler; /** * Created by Yashasvi on 16-04-2017. diff --git a/app/src/main/java/com/chameleon/streammusic/credit_page.java b/app/src/main/java/com/chameleon/sustcast/credit/credit_page.java similarity index 80% rename from app/src/main/java/com/chameleon/streammusic/credit_page.java rename to app/src/main/java/com/chameleon/sustcast/credit/credit_page.java index 94a09d7..9a3e57c 100644 --- a/app/src/main/java/com/chameleon/streammusic/credit_page.java +++ b/app/src/main/java/com/chameleon/sustcast/credit/credit_page.java @@ -1,8 +1,10 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.credit; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import com.chameleon.streammusic.R; + public class credit_page extends AppCompatActivity { @Override diff --git a/app/src/main/java/com/chameleon/streammusic/data/model/Output.java b/app/src/main/java/com/chameleon/sustcast/data/model/Output.java similarity index 91% rename from app/src/main/java/com/chameleon/streammusic/data/model/Output.java rename to app/src/main/java/com/chameleon/sustcast/data/model/Output.java index 461e095..613757b 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/model/Output.java +++ b/app/src/main/java/com/chameleon/sustcast/data/model/Output.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.data.model; +package com.chameleon.sustcast.data.model; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; diff --git a/app/src/main/java/com/chameleon/streammusic/data/model/logoutResponse.java b/app/src/main/java/com/chameleon/sustcast/data/model/logoutResponse.java similarity index 88% rename from app/src/main/java/com/chameleon/streammusic/data/model/logoutResponse.java rename to app/src/main/java/com/chameleon/sustcast/data/model/logoutResponse.java index d95af0b..c84beca 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/model/logoutResponse.java +++ b/app/src/main/java/com/chameleon/sustcast/data/model/logoutResponse.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.data.model; +package com.chameleon.sustcast.data.model; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; diff --git a/app/src/main/java/com/chameleon/streammusic/data/model/outer.java b/app/src/main/java/com/chameleon/sustcast/data/model/outer.java similarity index 87% rename from app/src/main/java/com/chameleon/streammusic/data/model/outer.java rename to app/src/main/java/com/chameleon/sustcast/data/model/outer.java index d316d51..0bf7d65 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/model/outer.java +++ b/app/src/main/java/com/chameleon/sustcast/data/model/outer.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.data.model; +package com.chameleon.sustcast.data.model; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; diff --git a/app/src/main/java/com/chameleon/streammusic/data/model/signupResponse.java b/app/src/main/java/com/chameleon/sustcast/data/model/signupResponse.java similarity index 87% rename from app/src/main/java/com/chameleon/streammusic/data/model/signupResponse.java rename to app/src/main/java/com/chameleon/sustcast/data/model/signupResponse.java index 1f5272c..cd75731 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/model/signupResponse.java +++ b/app/src/main/java/com/chameleon/sustcast/data/model/signupResponse.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.data.model; +package com.chameleon.sustcast.data.model; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; diff --git a/app/src/main/java/com/chameleon/streammusic/data/remote/ApiUtils.java b/app/src/main/java/com/chameleon/sustcast/data/remote/ApiUtils.java similarity index 85% rename from app/src/main/java/com/chameleon/streammusic/data/remote/ApiUtils.java rename to app/src/main/java/com/chameleon/sustcast/data/remote/ApiUtils.java index cf588ae..7bfab21 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/remote/ApiUtils.java +++ b/app/src/main/java/com/chameleon/sustcast/data/remote/ApiUtils.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.data.remote; +package com.chameleon.sustcast.data.remote; public class ApiUtils { public static final String BASE_URL = "http://192.168.0.107/api/"; diff --git a/app/src/main/java/com/chameleon/streammusic/data/remote/RetrofitClient.java b/app/src/main/java/com/chameleon/sustcast/data/remote/RetrofitClient.java similarity index 95% rename from app/src/main/java/com/chameleon/streammusic/data/remote/RetrofitClient.java rename to app/src/main/java/com/chameleon/sustcast/data/remote/RetrofitClient.java index 001209a..c81723d 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/remote/RetrofitClient.java +++ b/app/src/main/java/com/chameleon/sustcast/data/remote/RetrofitClient.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.data.remote; +package com.chameleon.sustcast.data.remote; diff --git a/app/src/main/java/com/chameleon/streammusic/data/remote/UserClient.java b/app/src/main/java/com/chameleon/sustcast/data/remote/UserClient.java similarity index 88% rename from app/src/main/java/com/chameleon/streammusic/data/remote/UserClient.java rename to app/src/main/java/com/chameleon/sustcast/data/remote/UserClient.java index 5268028..56dfc67 100644 --- a/app/src/main/java/com/chameleon/streammusic/data/remote/UserClient.java +++ b/app/src/main/java/com/chameleon/sustcast/data/remote/UserClient.java @@ -1,8 +1,8 @@ -package com.chameleon.streammusic.data.remote; +package com.chameleon.sustcast.data.remote; -import com.chameleon.streammusic.data.model.logoutResponse; -import com.chameleon.streammusic.data.model.outer; -import com.chameleon.streammusic.data.model.signupResponse; +import com.chameleon.sustcast.data.model.logoutResponse; +import com.chameleon.sustcast.data.model.outer; +import com.chameleon.sustcast.data.model.signupResponse; import com.google.gson.JsonElement; import retrofit2.Call; diff --git a/app/src/main/java/com/chameleon/streammusic/Favourites/feedback.java b/app/src/main/java/com/chameleon/sustcast/favorites/feedback.java similarity index 91% rename from app/src/main/java/com/chameleon/streammusic/Favourites/feedback.java rename to app/src/main/java/com/chameleon/sustcast/favorites/feedback.java index 60eb44f..b2cc1e5 100644 --- a/app/src/main/java/com/chameleon/streammusic/Favourites/feedback.java +++ b/app/src/main/java/com/chameleon/sustcast/favorites/feedback.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.Favourites; +package com.chameleon.sustcast.favorites; import android.content.Context; import android.os.Handler; @@ -12,9 +12,9 @@ import android.widget.Button; import android.widget.TextView; -import com.chameleon.streammusic.Home.Home; +import com.chameleon.sustcast.home.Home; import com.chameleon.streammusic.R; -import com.chameleon.streammusic.Utils.BottomNavigationViewHelper; +import com.chameleon.sustcast.utils.BottomNavigationViewHelper; import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; import java.io.DataInputStream; @@ -67,13 +67,13 @@ protected void onCreate(Bundle savedInstanceState) { System.out.println("FeedBack Created"); - coordinatorLayout = (CoordinatorLayout) findViewById(R.id.feedbackLayout); - final Button likeButton = (Button) findViewById(R.id.like); - final Button dislikeButton = (Button) findViewById(R.id.dislike); - final TextView songName = (TextView) findViewById(R.id.song); - final TextView artistName = (TextView) findViewById(R.id.artist); - final TextView titleView = (TextView) findViewById(R.id.top); - final TextView buttonTitle = (TextView) findViewById(R.id.txt1); + coordinatorLayout = findViewById(R.id.feedbackLayout); + final Button likeButton = findViewById(R.id.like); + final Button dislikeButton = findViewById(R.id.dislike); + final TextView songName = findViewById(R.id.song); + final TextView artistName = findViewById(R.id.artist); + final TextView titleView = findViewById(R.id.top); + final TextView buttonTitle = findViewById(R.id.txt1); if(feedbackLog == null) @@ -205,7 +205,7 @@ public void onClick(View v) { private void setupBottomNavigationView(){ Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView"); - BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar); + BottomNavigationViewEx bottomNavigationViewEx = findViewById(R.id.bottomNavViewBar); BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx); BottomNavigationViewHelper.enableNavigation(mContext, bottomNavigationViewEx); diff --git a/app/src/main/java/com/chameleon/streammusic/FontsOverride.java b/app/src/main/java/com/chameleon/sustcast/fontOverride/FontsOverride.java similarity index 95% rename from app/src/main/java/com/chameleon/streammusic/FontsOverride.java rename to app/src/main/java/com/chameleon/sustcast/fontOverride/FontsOverride.java index c78bfa8..3f0cc95 100644 --- a/app/src/main/java/com/chameleon/streammusic/FontsOverride.java +++ b/app/src/main/java/com/chameleon/sustcast/fontOverride/FontsOverride.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic; +package com.chameleon.sustcast.fontOverride; import android.content.Context; import android.graphics.Typeface; diff --git a/app/src/main/java/com/chameleon/streammusic/Home/Home.java b/app/src/main/java/com/chameleon/sustcast/home/Home.java similarity index 92% rename from app/src/main/java/com/chameleon/streammusic/Home/Home.java rename to app/src/main/java/com/chameleon/sustcast/home/Home.java index 555b118..157495f 100644 --- a/app/src/main/java/com/chameleon/streammusic/Home/Home.java +++ b/app/src/main/java/com/chameleon/sustcast/home/Home.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.Home; +package com.chameleon.sustcast.home; import android.content.Context; import android.content.Intent; @@ -22,15 +22,15 @@ import android.widget.Button; import android.widget.Toast; -import com.chameleon.streammusic.ApiLogin; -import com.chameleon.streammusic.ChatActvity; -import com.chameleon.streammusic.FontsOverride; +import com.chameleon.sustcast.authentication.ApiLogin; +import com.chameleon.sustcast.chatHandler.ChatActvity; +import com.chameleon.sustcast.fontOverride.FontsOverride; import com.chameleon.streammusic.R; -import com.chameleon.streammusic.Utils.BottomNavigationViewHelper; -import com.chameleon.streammusic.credit_page; -import com.chameleon.streammusic.data.model.logoutResponse; -import com.chameleon.streammusic.data.remote.ApiUtils; -import com.chameleon.streammusic.data.remote.UserClient; +import com.chameleon.sustcast.utils.BottomNavigationViewHelper; +import com.chameleon.sustcast.credit.credit_page; +import com.chameleon.sustcast.data.model.logoutResponse; +import com.chameleon.sustcast.data.remote.ApiUtils; +import com.chameleon.sustcast.data.remote.UserClient; import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; import java.io.DataInputStream; @@ -39,6 +39,11 @@ import java.io.OutputStream; import java.net.Socket; +import com.google.android.gms.ads.AdListener; +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.AdView; +import com.google.android.gms.ads.InterstitialAd; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -46,6 +51,7 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { DrawerLayout drawer; + private AdView mAdView; static final String serverName = "103.84.159.230"; static final int port = 50002; static OutputStream outToServer; diff --git a/app/src/main/java/com/chameleon/streammusic/Home/TrendingFragment.java b/app/src/main/java/com/chameleon/sustcast/home/HomeFragment.java similarity index 78% rename from app/src/main/java/com/chameleon/streammusic/Home/TrendingFragment.java rename to app/src/main/java/com/chameleon/sustcast/home/HomeFragment.java index f0b07a7..9622d3e 100644 --- a/app/src/main/java/com/chameleon/streammusic/Home/TrendingFragment.java +++ b/app/src/main/java/com/chameleon/sustcast/home/HomeFragment.java @@ -1,28 +1,22 @@ -package com.chameleon.streammusic.Home; +package com.chameleon.sustcast.home; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import com.chameleon.streammusic.R; -import android.media.AudioManager; -import android.media.MediaPlayer; -import android.os.AsyncTask; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.view.View; -import android.widget.Button; import java.io.IOException; -/** - * Created by HEMAYEET on 1/3/2018. - */ - -public class TrendingFragment extends Fragment { +public class HomeFragment extends Fragment { + private static final String TAG = "Home Fragment"; Button b_play; MediaPlayer mediaPlayer; @@ -31,22 +25,21 @@ public class TrendingFragment extends Fragment { boolean started = false; String stream = "http://103.84.159.230:8000/sustcast"; - private static final String TAG = "Trending Fragment"; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_trending, container, false); - - + View view = inflater.inflate(R.layout.fragment_home, container, false); mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); - new PlayerTask().execute(stream); + new HomeFragment.PlayerTask().execute(stream); return view; } - class PlayerTask extends AsyncTask{ + + + class PlayerTask extends AsyncTask { @Override protected Boolean doInBackground(String... strings) { @@ -90,4 +83,5 @@ public void onDestroy() { mediaPlayer.release(); } } + } diff --git a/app/src/main/java/com/chameleon/sustcast/home/LiveFragment.java b/app/src/main/java/com/chameleon/sustcast/home/LiveFragment.java new file mode 100644 index 0000000..d114c4e --- /dev/null +++ b/app/src/main/java/com/chameleon/sustcast/home/LiveFragment.java @@ -0,0 +1,56 @@ +package com.chameleon.sustcast.home; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.chameleon.streammusic.R; +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.AdView; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; + +/** + * Created by HEMAYEET on 1/3/2018. + */ + +public class LiveFragment extends Fragment { + private static final String TAG = "Live Fragment"; + private AdView mAdView; + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_live, container, false); + + mAdView = view.findViewById(R.id.adView); + AdRequest adRequest = new AdRequest.Builder().build(); + mAdView.loadAd(adRequest); + CurrentSong(); + return view; + } + public void CurrentSong() { + + try + { + URL url = new URL("http://103.84.159.230:8000/sustcast/currentsong?sid=#"); + BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); + + String inputLine; + + while ((inputLine = in.readLine()) != null) + System.out.println(inputLine); + + in.close(); + } + catch(Exception e) + { + System.out.println(e.toString()); + } + } +} diff --git a/app/src/main/java/com/chameleon/streammusic/Home/SectionsPagerAdapter.java b/app/src/main/java/com/chameleon/sustcast/home/SectionsPagerAdapter.java similarity index 95% rename from app/src/main/java/com/chameleon/streammusic/Home/SectionsPagerAdapter.java rename to app/src/main/java/com/chameleon/sustcast/home/SectionsPagerAdapter.java index d7db36d..6db366f 100644 --- a/app/src/main/java/com/chameleon/streammusic/Home/SectionsPagerAdapter.java +++ b/app/src/main/java/com/chameleon/sustcast/home/SectionsPagerAdapter.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.Home; +package com.chameleon.sustcast.home; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; diff --git a/app/src/main/java/com/chameleon/streammusic/Home/HomeFragment.java b/app/src/main/java/com/chameleon/sustcast/home/TrendingFragment.java similarity index 67% rename from app/src/main/java/com/chameleon/streammusic/Home/HomeFragment.java rename to app/src/main/java/com/chameleon/sustcast/home/TrendingFragment.java index 648892f..5f4f1cd 100644 --- a/app/src/main/java/com/chameleon/streammusic/Home/HomeFragment.java +++ b/app/src/main/java/com/chameleon/sustcast/home/TrendingFragment.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.Home; +package com.chameleon.sustcast.home; import android.os.Bundle; import android.support.annotation.Nullable; @@ -13,14 +13,15 @@ * Created by HEMAYEET on 1/3/2018. */ -public class HomeFragment extends Fragment { - private static final String TAG = "Home Fragment"; +public class TrendingFragment extends Fragment { + private static final String TAG = "Trending Fragment"; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_home, container, false); + View view = inflater.inflate(R.layout.fragment_trending, container, false); return view; } + } diff --git a/app/src/main/java/com/chameleon/streammusic/Mood/Facebook.java b/app/src/main/java/com/chameleon/sustcast/mood/Facebook.java similarity index 92% rename from app/src/main/java/com/chameleon/streammusic/Mood/Facebook.java rename to app/src/main/java/com/chameleon/sustcast/mood/Facebook.java index 53205ca..7a3c486 100644 --- a/app/src/main/java/com/chameleon/streammusic/Mood/Facebook.java +++ b/app/src/main/java/com/chameleon/sustcast/mood/Facebook.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.Mood; +package com.chameleon.sustcast.mood; import android.content.Context; import android.support.v7.app.AppCompatActivity; @@ -8,7 +8,7 @@ import android.view.MenuItem; import com.chameleon.streammusic.R; -import com.chameleon.streammusic.Utils.BottomNavigationViewHelper; +import com.chameleon.sustcast.utils.BottomNavigationViewHelper; import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; public class Facebook extends AppCompatActivity { @@ -38,7 +38,7 @@ protected void onCreate(Bundle savedInstanceState) { */ //personal toolbar added //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarplaymood); - //toolbar.setTitle("Mood"); + //toolbar.setTitle("mood"); //toolbar.setTitleTextColor(Color.WHITE); //setSupportActionBar(toolbar); //setupBottomNavigationView(); @@ -46,7 +46,7 @@ protected void onCreate(Bundle savedInstanceState) { private void setupBottomNavigationView(){ Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView"); - BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar); + BottomNavigationViewEx bottomNavigationViewEx = findViewById(R.id.bottomNavViewBar); BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx); BottomNavigationViewHelper.enableNavigation(mContext, bottomNavigationViewEx); diff --git a/app/src/main/java/com/chameleon/streammusic/Utils/BottomNavigationViewHelper.java b/app/src/main/java/com/chameleon/sustcast/utils/BottomNavigationViewHelper.java similarity index 92% rename from app/src/main/java/com/chameleon/streammusic/Utils/BottomNavigationViewHelper.java rename to app/src/main/java/com/chameleon/sustcast/utils/BottomNavigationViewHelper.java index f485d7c..dfdd620 100644 --- a/app/src/main/java/com/chameleon/streammusic/Utils/BottomNavigationViewHelper.java +++ b/app/src/main/java/com/chameleon/sustcast/utils/BottomNavigationViewHelper.java @@ -1,4 +1,4 @@ -package com.chameleon.streammusic.Utils; +package com.chameleon.sustcast.utils; import android.content.Context; import android.content.Intent; @@ -8,9 +8,9 @@ import android.util.Log; import android.view.MenuItem; -import com.chameleon.streammusic.Home.Home; +import com.chameleon.sustcast.chatHandler.ChatActvity; +import com.chameleon.sustcast.home.Home; import com.chameleon.streammusic.R; -import com.chameleon.streammusic.Search.RJ; import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; /** @@ -39,7 +39,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) { context.startActivity(intent1); break; case R.id.ic_search: - Intent intent2 = new Intent(context, RJ.class); + Intent intent2 = new Intent(context, ChatActvity.class); context.startActivity(intent2); break; diff --git a/app/src/main/java/com/chameleon/streammusic/Utils/desktop.ini b/app/src/main/java/com/chameleon/sustcast/utils/desktop.ini similarity index 100% rename from app/src/main/java/com/chameleon/streammusic/Utils/desktop.ini rename to app/src/main/java/com/chameleon/sustcast/utils/desktop.ini diff --git a/app/src/main/res/layout/activity_api_logout.xml b/app/src/main/res/layout/activity_api_logout.xml index 76cc2ff..1525cdb 100644 --- a/app/src/main/res/layout/activity_api_logout.xml +++ b/app/src/main/res/layout/activity_api_logout.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ApiLogout"> + tools:context="com.chameleon.sustcast.authentication.ApiLogout"> + tools:context="com.chameleon.sustcast.chatHandler.ChatActvity"> + tools:context="com.chameleon.streammusic.com.chameleon.sustcast.home.Home"> + tools:context="com.chameleon.streammusic.com.chameleon.sustcast.favorites.feedback"> - - + android:layout_height="match_parent" + tools:context="com.chameleon.streammusic.com.chameleon.sustcast.home.Home"> - + android:layout_height="match_parent"> - + + + - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_live.xml b/app/src/main/res/layout/fragment_live.xml index 1d967a5..c06e505 100644 --- a/app/src/main/res/layout/fragment_live.xml +++ b/app/src/main/res/layout/fragment_live.xml @@ -3,8 +3,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto"> - + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:ads="http://schemas.android.com/apk/res-auto"> - + diff --git a/app/src/main/res/layout/item_other_message.xml b/app/src/main/res/layout/item_other_message.xml index 51cead7..4b032b3 100644 --- a/app/src/main/res/layout/item_other_message.xml +++ b/app/src/main/res/layout/item_other_message.xml @@ -22,8 +22,9 @@ android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:padding="5dp" android:text="Helloworld" - android:textSize="15dp" + android:textSize="20dp" android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7721bc4..f098118 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,4 +8,6 @@ 998PJs2zhNm-Zp-2Ps6rYRon9ZTxy4y_rXTIcIDLoBKv f6f9c65b-f53a-4707-b6d8-12e15d60b2d0 https://gateway.watsonplatform.net/assistant/api + ca-app-pub-3940256099942544/6300978111 + diff --git a/build.gradle b/build.gradle index d194854..4741a2a 100644 --- a/build.gradle +++ b/build.gradle @@ -7,9 +7,11 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.google.gms:google-services:4.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files + } }