Advertisement
Guest User

Untitled

a guest
Jun 14th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.86 KB | None | 0 0
  1. //class chat
  2. public class Chat implements Serializable {
  3. private String id, username, pesan;
  4.  
  5. public Chat(String id, String username, String pesan) {
  6. this.id = id;
  7. this.username = username;
  8. this.pesan = pesan;
  9. }
  10.  
  11. public String getId() {
  12. return id;
  13. }
  14.  
  15. public void setId(String id) {
  16. this.id = id;
  17. }
  18.  
  19. public String getUsername() {
  20. return username;
  21. }
  22.  
  23. public void setUsername(String username) {
  24. this.username = username;
  25. }
  26.  
  27. public String getPesan() {
  28. return pesan;
  29. }
  30.  
  31. public void setPesan(String pesan) {
  32. this.pesan = pesan;
  33. }
  34. }
  35.  
  36. //class CustomAdapter
  37. public class CustomAdapter extends ArrayAdapter<Chat> {
  38. private final Activity context;
  39. ArrayList<Chat> chats = new ArrayList<>();
  40.  
  41. public CustomAdapter(Activity activity, ArrayList<Chat> chats){
  42. super(activity, R.layout.chat_layout, chats);
  43. this.context = activity;
  44. this.chats = chats;
  45. }
  46.  
  47. public View getView(int pos, View view, ViewGroup parent){
  48. LayoutInflater inflater = context.getLayoutInflater();
  49. View rowView = inflater.inflate(R.layout.chat_layout, null, true);
  50.  
  51. TextView txtPengirim = (TextView) rowView.findViewById(R.id.txtPengirim);
  52. TextView txtPesan = (TextView) rowView.findViewById(R.id.txtPesan);
  53.  
  54. txtPengirim.setText(chats.get(pos).getUsername());
  55. txtPesan.setText(chats.get(pos).getPesan());
  56. return rowView;
  57. }
  58. }
  59.  
  60. //class JsonParser
  61. public class JsonParser {
  62. private static InputStream is=null;
  63. private static String result=null;
  64. private static String line=null;
  65. private static JSONObject json_data;
  66. private static String url;
  67.  
  68. public static JSONObject aksesHttp(String urlFromActivity, ArrayList<NameValuePair> nameValuePairs){
  69. url = "http://ramlivan.esy.es/chat/";
  70. url += urlFromActivity;
  71. Log.d("url", url);
  72. if (android.os.Build.VERSION.SDK_INT > 9) {
  73. StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
  74. StrictMode.setThreadPolicy(policy);
  75. }
  76. ArrayList<NameValuePair> valuePairs = new ArrayList<>();
  77. if(nameValuePairs != null){
  78. valuePairs = nameValuePairs;
  79. }
  80. try
  81. {
  82. HttpClient httpclient = new DefaultHttpClient();
  83. HttpPost httppost = new HttpPost(url);
  84. httppost.setEntity(new UrlEncodedFormEntity(valuePairs));
  85. HttpResponse response = httpclient.execute(httppost);
  86. HttpEntity entity = response.getEntity();
  87. is = entity.getContent();
  88. Log.e("pass 1", "connection success ");
  89. }
  90. catch(Exception e)
  91. {
  92. Log.e("Fail 1", e.toString());
  93. }
  94.  
  95. try
  96. {
  97. BufferedReader reader = new BufferedReader
  98. (new InputStreamReader(is,"iso-8859-1"),8);
  99. StringBuilder sb = new StringBuilder();
  100. while ((line = reader.readLine()) != null)
  101. {
  102. sb.append(line + "\n");
  103. }
  104. is.close();
  105. result = sb.toString();
  106. Log.e("pass 2", "connection success ");
  107. }
  108. catch(Exception e)
  109. {
  110. Log.e("Fail 2", e.toString());
  111. }
  112.  
  113. try
  114. {
  115. json_data = new JSONObject(result);
  116. String query = json_data.getString("query");
  117. Log.d("query", query);
  118. }
  119. catch(Exception e)
  120. {
  121. Log.e("Fail 3", e.toString());
  122. }
  123. return json_data;
  124. }
  125. }
  126.  
  127. //class user
  128. public class User implements Serializable{
  129. private String username, password;
  130.  
  131. public String getUsername() {
  132. return username;
  133. }
  134.  
  135. public void setUsername(String username) {
  136. this.username = username;
  137. }
  138.  
  139. public String getPassword() {
  140. return password;
  141. }
  142.  
  143. public void setPassword(String password) {
  144. this.password = password;
  145. }
  146.  
  147. public User(String username, String password) {
  148.  
  149. this.username = username;
  150. this.password = password;
  151. }
  152. }
  153.  
  154. //ActivityChat
  155. public class ChatActivity extends AppCompatActivity {
  156. User olUser;
  157. ArrayList<Chat> allChat = new ArrayList<>();
  158.  
  159. ListView lvChat;
  160. Button btnKirim;
  161. EditText editPesan;
  162.  
  163.  
  164.  
  165. @Override
  166. protected void onCreate(Bundle savedInstanceState) {
  167. super.onCreate(savedInstanceState);
  168. setContentView(R.layout.activity_chat);
  169.  
  170. olUser = (User) getIntent().getSerializableExtra("olUser");
  171.  
  172. lvChat = (ListView) findViewById(R.id.lvChat);
  173. editPesan = (EditText) findViewById(R.id.editPesan);
  174. btnKirim = (Button) findViewById(R.id.btnKirim);
  175.  
  176. btnKirim.setOnClickListener(new View.OnClickListener() {
  177. @Override
  178. public void onClick(View v) {
  179. String username = olUser.getUsername();
  180. String pesan = editPesan.getText().toString();
  181. String url = "latuasmobile/sendchat.php";
  182. ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
  183. nameValuePairs.add(new BasicNameValuePair("username", username));
  184. nameValuePairs.add(new BasicNameValuePair("pesan", pesan));
  185. JSONObject object = JsonParser.aksesHttp(url, nameValuePairs);
  186. editPesan.setText("");
  187. }
  188. });
  189.  
  190. reloadChat();
  191. }
  192.  
  193. JSONObject jsonObject;
  194. private void reloadChat(){
  195. new Thread(new Runnable() {
  196. @Override
  197. public void run() {
  198. try {
  199. Thread.sleep(1000);
  200. String url = "latuasmobile/chat.php";
  201. allChat = new ArrayList<Chat>();
  202. jsonObject = JsonParser.aksesHttp(url, null);
  203. JSONArray allChatJSONArray = jsonObject.getJSONArray("allChat");
  204. for(int i=0; i<allChatJSONArray.length(); i++){
  205. JSONObject newJsonObj = allChatJSONArray.getJSONObject(i);
  206. String id = newJsonObj.getString("id");
  207. String username = newJsonObj.getString("username");
  208. String pesan = newJsonObj.getString("pesan");
  209. allChat.add(new Chat(id, username, pesan));
  210. }
  211.  
  212. ChatActivity.this.runOnUiThread(new Runnable() {
  213. @Override
  214. public void run() {
  215. CustomAdapter adapter;
  216. adapter = new CustomAdapter(ChatActivity.this, allChat);
  217. lvChat.setAdapter(adapter);
  218. lvChat.setSelection(lvChat.getCount());
  219. }
  220. });
  221. reloadChat();
  222. } catch (InterruptedException e) {
  223. e.printStackTrace();
  224. } catch (JSONException e) {
  225. e.printStackTrace();
  226. }
  227. }
  228. }).start();
  229.  
  230. }
  231. @Override
  232. public void onBackPressed() {
  233. finish();
  234. }
  235. }
  236.  
  237. //ActivityLogin
  238. public class LoginActivity extends AppCompatActivity {
  239. ArrayList<User> allUsers = new ArrayList<>();
  240.  
  241. EditText editUsername, editPassword;
  242. Button btnLogin, btnSignUp;
  243. User olUser;
  244. @Override
  245. protected void onCreate(Bundle savedInstanceState) {
  246. super.onCreate(savedInstanceState);
  247. setContentView(R.layout.activity_login);
  248.  
  249. new GetAllDataFromDB().execute();
  250.  
  251. editUsername = (EditText) findViewById(R.id.editUsername);
  252. editPassword = (EditText) findViewById(R.id.editPassword);
  253. btnLogin = (Button) findViewById(R.id.btnLogin);
  254. btnLogin.setOnClickListener(new View.OnClickListener() {
  255. @Override
  256. public void onClick(View v) {
  257. String username = editUsername.getText().toString();
  258. String password = editPassword.getText().toString();
  259. int loginFlag = 0;
  260. for(User idx: allUsers){
  261. if(username.equals(idx.getUsername()) && password.equals(idx.getPassword())){
  262. loginFlag = 1;
  263. olUser = idx;
  264. break;
  265. }
  266. }
  267. if(loginFlag == 1){
  268. Log.d("login status", "benar");
  269. Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
  270. intent.putExtra("olUser", olUser);
  271. startActivity(intent);
  272. } else {
  273. Log.d("login status", "salah");
  274. }
  275. }
  276. });
  277.  
  278. btnSignUp = (Button) findViewById(R.id.btnSignUp);
  279. btnSignUp.setOnClickListener(new View.OnClickListener() {
  280. @Override
  281. public void onClick(View v) {
  282. startActivity(new Intent(getApplicationContext(), SignUpActivity.class));
  283. }
  284. });
  285. }
  286.  
  287. private class GetAllDataFromDB extends AsyncTask<String, String, String>{
  288. JSONObject jsonObject;
  289. JSONArray jsonArrayAllUser;
  290.  
  291. @Override
  292. protected void onPreExecute() {
  293. super.onPreExecute();
  294. allUsers = new ArrayList<>();
  295. }
  296.  
  297. @Override
  298. protected String doInBackground(String... params) {
  299. String url = "latuasmobile/login.php";
  300. jsonObject = JsonParser.aksesHttp(url, null);
  301. try{
  302. jsonArrayAllUser = jsonObject.getJSONArray("allUser");
  303. for(int i=0; i<jsonArrayAllUser.length(); i++){
  304. JSONObject objFromArr = jsonArrayAllUser.getJSONObject(i);
  305. String username = objFromArr.getString("username");
  306. String password = objFromArr.getString("password");
  307. Log.d("user", username + "-" + password);
  308. allUsers.add(new User(username, password));
  309. }
  310. } catch (Exception ex){
  311. ex.printStackTrace();
  312. }
  313.  
  314. return null;
  315. }
  316.  
  317. @Override
  318. protected void onPostExecute(String s) {
  319. super.onPostExecute(s);
  320. }
  321. }
  322. }
  323.  
  324. //ActivityMain
  325. public class MainActivity extends AppCompatActivity {
  326.  
  327. @Override
  328. protected void onCreate(Bundle savedInstanceState) {
  329. super.onCreate(savedInstanceState);
  330. setContentView(R.layout.activity_main);
  331. }
  332.  
  333. @Override
  334. public boolean onCreateOptionsMenu(Menu menu) {
  335. MenuInflater menuInflater = new MenuInflater(MainActivity.this);
  336. menuInflater.inflate(R.menu.menu_login, menu);
  337. return true;
  338. //return super.onCreateOptionsMenu(menu);
  339. }
  340.  
  341. @Override
  342. public boolean onOptionsItemSelected(MenuItem item) {
  343. if(item.getItemId() == R.id.menuLogin){
  344. startActivity(new Intent(getApplicationContext(), LoginActivity.class));
  345. }
  346. return super.onOptionsItemSelected(item);
  347.  
  348.  
  349. }
  350. }
  351.  
  352. //ActivityMenu
  353. public class MenuActivity extends AppCompatActivity {
  354. User olUser;
  355.  
  356. Button btnChat, btnLogout;
  357. @Override
  358. protected void onCreate(Bundle savedInstanceState) {
  359. super.onCreate(savedInstanceState);
  360. setContentView(R.layout.activity_menu);
  361.  
  362. olUser = (User) getIntent().getSerializableExtra("olUser");
  363. btnChat = (Button) findViewById(R.id.btnChat);
  364.  
  365. btnChat.setOnClickListener(new View.OnClickListener() {
  366. @Override
  367. public void onClick(View v) {
  368. Intent intent = new Intent(getApplicationContext(), ChatActivity.class);
  369. intent.putExtra("olUser", olUser);
  370. startActivity(intent);
  371. }
  372. });
  373.  
  374. btnLogout = (Button) findViewById(R.id.btnLogout);
  375. btnLogout.setOnClickListener(new View.OnClickListener() {
  376. @Override
  377. public void onClick(View v) {
  378. finish();
  379. }
  380. });
  381. }
  382.  
  383. @Override
  384. public void onBackPressed() {
  385. finish();
  386. }
  387. }
  388.  
  389.  
  390. //ActivitySignUp
  391. public class SignUpActivity extends AppCompatActivity {
  392. EditText editUsername, editPassword;
  393. Button btnCancel, btnSignUp;
  394. @Override
  395. protected void onCreate(Bundle savedInstanceState) {
  396. super.onCreate(savedInstanceState);
  397. setContentView(R.layout.activity_sign_up);
  398.  
  399. editUsername = (EditText) findViewById(R.id.editUsername);
  400. editPassword = (EditText) findViewById(R.id.editPassword);
  401. btnSignUp = (Button) findViewById(R.id.btnSignUp);
  402. btnSignUp.setOnClickListener(new View.OnClickListener() {
  403. @Override
  404. public void onClick(View v) {
  405. String username = editUsername.getText().toString();
  406. String password = editPassword.getText().toString();
  407. ArrayList<NameValuePair> valuePairs = new ArrayList<NameValuePair>();
  408. valuePairs.add(new BasicNameValuePair("username", username));
  409. valuePairs.add(new BasicNameValuePair("password", password));
  410. JSONObject obj = JsonParser.aksesHttp("latuasmobile/signup.php", valuePairs);
  411. finish();
  412. }
  413. });
  414.  
  415. btnCancel = (Button) findViewById(R.id.btnCancel);
  416. btnCancel.setOnClickListener(new View.OnClickListener() {
  417. @Override
  418. public void onClick(View v) {
  419. finish();
  420. }
  421. });
  422. }
  423.  
  424. @Override
  425. public void onBackPressed() {
  426. finish();
  427. }
  428. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement