/** * Copyright Google Inc. All Rights Reserved. * <p/> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p/> * http://w...content-available-to-author-only...e.org/licenses/LICENSE-2.0 * <p/> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.firebase.udacity.friendlychat; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.text.Editable; import android.text.InputFilter; import android.text.TextWatcher; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.Toast; import com.firebase.ui.auth.AuthUI; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.database.ChildEventListener; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.DatabaseReference; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MainActivity extends AppCompatActivity { public static final int DEFAULT_MSG_LENGTH_LIMIT = 1000; public static final int RC_SIGN_IN = 1; private MessageAdapter mMessageAdapter; private ProgressBar mProgressBar; private ImageButton mPhotoPickerButton; private EditText mMessageEditText; // Firebase instance variables private FirebaseDatabase mFirebaseDatabase; private DatabaseReference mMessagesDatabaseReference; private ChildEventListener mChildEventListener; private FirebaseAuth mFirebaseAuth; private FirebaseAuth.AuthStateListener mAuthStateListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mUsername = ANONYMOUS; // Initialize Firebase components. Added manually mFirebaseDatabase = FirebaseDatabase.getInstance(); mFirebaseAuth = FirebaseAuth.getInstance(); mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("messages"); // Initialize references to views mProgressBar = (ProgressBar) findViewById(R.id.progressBar); mPhotoPickerButton = (ImageButton) findViewById(R.id.photoPickerButton); mMessageEditText = (EditText) findViewById(R.id.messageEditText); // Initialize message ListView and its adapter List<FriendlyMessage> friendlyMessages = new ArrayList<>(); mMessageAdapter = new MessageAdapter(this, R.layout.item_message, friendlyMessages); mMessageListView.setAdapter(mMessageAdapter); // Initialize progress bar mProgressBar.setVisibility(ProgressBar.INVISIBLE); // ImagePickerButton shows an image picker to upload a image for a message @Override // TODO: Fire an intent to show an image picker } }); // Enable Send button when there's text to send mMessageEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { if (charSequence.toString().trim().length() > 0) { mSendButton.setEnabled(true); } else { mSendButton.setEnabled(false); } } @Override public void afterTextChanged(Editable editable) { } }); mMessageEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(DEFAULT_MSG_LENGTH_LIMIT)}); // Send button sends a message and clears the EditText // Added manually @Override // TODO: Send messages on click FriendlyMessage friendlyMessage = new FriendlyMessage(mMessageEditText.getText().toString(), mUsername, null); mMessagesDatabaseReference.push().setValue(friendlyMessage); // Clear input box mMessageEditText.setText(""); } }); /*mSendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TODO: Send messages on click // Clear input box mMessageEditText.setText(""); } });*/ mAuthStateListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth){ FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null){ // User is signed in //Toast.makeText(MainActivity.this, "You're now signed in. Welcome to FriendlyChat!", Toast.LENGTH_SHORT).show(); onSignedInInitialize(user.getDisplayName()); }else{ // User is signed out onSignedOutCleanup(); startActivityForResult( AuthUI.getInstance() .createSignInIntentBuilder() .setIsSmartLockEnabled(false) new AuthUI.IdpConfig.GoogleBuilder().build(), new AuthUI.IdpConfig.EmailBuilder().build())) .build(), RC_SIGN_IN); } } }; } @Override MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return true; } @Override switch ( item.getItemId()){ case R.id.sign_out_menu: // Sign out AuthUI.getInstance().signOut(this); return true; default: return super.onOptionsItemSelected(item); } } /*@Override protected void onStop(){ super.onStop(); FirebaseAuth.getInstance().signOut(); }*/ @Override // Added manually. protected void onPause(){ super.onPause(); if (mAuthStateListener != null) { mFirebaseAuth.removeAuthStateListener(mAuthStateListener); } detachDatabaseReadListener(); mMessageAdapter.clear(); } @Override // Added manually. public void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data); if(requestCode == RC_SIGN_IN){ if(resultCode == RESULT_OK) { Toast.makeText(this, "Signed in!", Toast.LENGTH_SHORT).show(); } }else if(resultCode == RESULT_CANCELED){ Toast.makeText(this, "Sign in canceled", Toast.LENGTH_SHORT).show(); finish(); } } @Override // Added manually. protected void onResume() { super.onResume(); mFirebaseAuth.addAuthStateListener(mAuthStateListener); } mUsername = username; attachDatabaseReadListener(); } private void onSignedOutCleanup(){ mUsername = ANONYMOUS; mMessageAdapter.clear(); detachDatabaseReadListener(); } private void attachDatabaseReadListener(){ if( mChildEventListener == null ) { mChildEventListener = new ChildEventListener() { @Override FriendlyMessage friendlyMessage = dataSnapshot.getValue(FriendlyMessage.class); mMessageAdapter.add(friendlyMessage); } @Override } @Override public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) { } @Override } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }; mMessagesDatabaseReference.addChildEventListener(mChildEventListener); } } private void detachDatabaseReadListener(){ if (mChildEventListener != null) { mMessagesDatabaseReference.removeEventListener(mChildEventListener); mChildEventListener = null; } } }
Standard input is empty
Main.java:50: error: class MainActivity is public, should be declared in a file named MainActivity.java
public class MainActivity extends AppCompatActivity {
^
Main.java:18: error: package android.content does not exist
import android.content.Intent;
^
Main.java:19: error: package android.os does not exist
import android.os.Bundle;
^
Main.java:20: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
^
Main.java:21: error: package android.support.annotation does not exist
import android.support.annotation.Nullable;
^
Main.java:22: error: package android.support.v7.app does not exist
import android.support.v7.app.AppCompatActivity;
^
Main.java:23: error: package android.text does not exist
import android.text.Editable;
^
Main.java:24: error: package android.text does not exist
import android.text.InputFilter;
^
Main.java:25: error: package android.text does not exist
import android.text.TextWatcher;
^
Main.java:26: error: package android.view does not exist
import android.view.Menu;
^
Main.java:27: error: package android.view does not exist
import android.view.MenuInflater;
^
Main.java:28: error: package android.view does not exist
import android.view.MenuItem;
^
Main.java:29: error: package android.view does not exist
import android.view.View;
^
Main.java:30: error: package android.widget does not exist
import android.widget.Button;
^
Main.java:31: error: package android.widget does not exist
import android.widget.EditText;
^
Main.java:32: error: package android.widget does not exist
import android.widget.ImageButton;
^
Main.java:33: error: package android.widget does not exist
import android.widget.ListView;
^
Main.java:34: error: package android.widget does not exist
import android.widget.ProgressBar;
^
Main.java:35: error: package android.widget does not exist
import android.widget.Toast;
^
Main.java:37: error: package com.firebase.ui.auth does not exist
import com.firebase.ui.auth.AuthUI;
^
Main.java:38: error: package com.google.firebase.auth does not exist
import com.google.firebase.auth.FirebaseAuth;
^
Main.java:39: error: package com.google.firebase.auth does not exist
import com.google.firebase.auth.FirebaseUser;
^
Main.java:40: error: package com.google.firebase.database does not exist
import com.google.firebase.database.ChildEventListener;
^
Main.java:41: error: package com.google.firebase.database does not exist
import com.google.firebase.database.DataSnapshot;
^
Main.java:42: error: package com.google.firebase.database does not exist
import com.google.firebase.database.DatabaseError;
^
Main.java:43: error: package com.google.firebase.database does not exist
import com.google.firebase.database.FirebaseDatabase;
^
Main.java:44: error: package com.google.firebase.database does not exist
import com.google.firebase.database.DatabaseReference;
^
Main.java:50: error: cannot find symbol
public class MainActivity extends AppCompatActivity {
^
symbol: class AppCompatActivity
Main.java:58: error: cannot find symbol
private ListView mMessageListView;
^
symbol: class ListView
location: class MainActivity
Main.java:59: error: cannot find symbol
private MessageAdapter mMessageAdapter;
^
symbol: class MessageAdapter
location: class MainActivity
Main.java:60: error: cannot find symbol
private ProgressBar mProgressBar;
^
symbol: class ProgressBar
location: class MainActivity
Main.java:61: error: cannot find symbol
private ImageButton mPhotoPickerButton;
^
symbol: class ImageButton
location: class MainActivity
Main.java:62: error: cannot find symbol
private EditText mMessageEditText;
^
symbol: class EditText
location: class MainActivity
Main.java:63: error: cannot find symbol
private Button mSendButton;
^
symbol: class Button
location: class MainActivity
Main.java:68: error: cannot find symbol
private FirebaseDatabase mFirebaseDatabase;
^
symbol: class FirebaseDatabase
location: class MainActivity
Main.java:69: error: cannot find symbol
private DatabaseReference mMessagesDatabaseReference;
^
symbol: class DatabaseReference
location: class MainActivity
Main.java:70: error: cannot find symbol
private ChildEventListener mChildEventListener;
^
symbol: class ChildEventListener
location: class MainActivity
Main.java:71: error: cannot find symbol
private FirebaseAuth mFirebaseAuth;
^
symbol: class FirebaseAuth
location: class MainActivity
Main.java:72: error: package FirebaseAuth does not exist
private FirebaseAuth.AuthStateListener mAuthStateListener;
^
Main.java:76: error: cannot find symbol
protected void onCreate(Bundle savedInstanceState) {
^
symbol: class Bundle
location: class MainActivity
Main.java:182: error: cannot find symbol
public boolean onCreateOptionsMenu(Menu menu) {
^
symbol: class Menu
location: class MainActivity
Main.java:189: error: cannot find symbol
public boolean onOptionsItemSelected(MenuItem item) {
^
symbol: class MenuItem
location: class MainActivity
Main.java:220: error: cannot find symbol
public void onActivityResult(int requestCode, int resultCode, Intent data){
^
symbol: class Intent
location: class MainActivity
Main.java:75: error: method does not override or implement a method from a supertype
@Override
^
Main.java:77: error: cannot find symbol
super.onCreate(savedInstanceState);
^
symbol: variable super
location: class MainActivity
Main.java:78: error: package R does not exist
setContentView(R.layout.activity_main);
^
Main.java:83: error: cannot find symbol
mFirebaseDatabase = FirebaseDatabase.getInstance();
^
symbol: variable FirebaseDatabase
location: class MainActivity
Main.java:84: error: cannot find symbol
mFirebaseAuth = FirebaseAuth.getInstance();
^
symbol: variable FirebaseAuth
location: class MainActivity
Main.java:89: error: cannot find symbol
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
^
symbol: class ProgressBar
location: class MainActivity
Main.java:89: error: package R does not exist
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
^
Main.java:90: error: cannot find symbol
mMessageListView = (ListView) findViewById(R.id.messageListView);
^
symbol: class ListView
location: class MainActivity
Main.java:90: error: package R does not exist
mMessageListView = (ListView) findViewById(R.id.messageListView);
^
Main.java:91: error: cannot find symbol
mPhotoPickerButton = (ImageButton) findViewById(R.id.photoPickerButton);
^
symbol: class ImageButton
location: class MainActivity
Main.java:91: error: package R does not exist
mPhotoPickerButton = (ImageButton) findViewById(R.id.photoPickerButton);
^
Main.java:92: error: cannot find symbol
mMessageEditText = (EditText) findViewById(R.id.messageEditText);
^
symbol: class EditText
location: class MainActivity
Main.java:92: error: package R does not exist
mMessageEditText = (EditText) findViewById(R.id.messageEditText);
^
Main.java:93: error: cannot find symbol
mSendButton = (Button) findViewById(R.id.sendButton);
^
symbol: class Button
location: class MainActivity
Main.java:93: error: package R does not exist
mSendButton = (Button) findViewById(R.id.sendButton);
^
Main.java:96: error: cannot find symbol
List<FriendlyMessage> friendlyMessages = new ArrayList<>();
^
symbol: class FriendlyMessage
location: class MainActivity
Main.java:97: error: cannot find symbol
mMessageAdapter = new MessageAdapter(this, R.layout.item_message, friendlyMessages);
^
symbol: class MessageAdapter
location: class MainActivity
Main.java:97: error: package R does not exist
mMessageAdapter = new MessageAdapter(this, R.layout.item_message, friendlyMessages);
^
Main.java:101: error: cannot find symbol
mProgressBar.setVisibility(ProgressBar.INVISIBLE);
^
symbol: variable ProgressBar
location: class MainActivity
Main.java:104: error: package View does not exist
mPhotoPickerButton.setOnClickListener(new View.OnClickListener() {
^
Main.java:112: error: cannot find symbol
mMessageEditText.addTextChangedListener(new TextWatcher() {
^
symbol: class TextWatcher
location: class MainActivity
Main.java:130: error: cannot find symbol
mMessageEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(DEFAULT_MSG_LENGTH_LIMIT)});
^
symbol: class InputFilter
location: class MainActivity
Main.java:130: error: package InputFilter does not exist
mMessageEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(DEFAULT_MSG_LENGTH_LIMIT)});
^
Main.java:134: error: package View does not exist
mSendButton.setOnClickListener(new View.OnClickListener() {
^
Main.java:156: error: package FirebaseAuth does not exist
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
^
Main.java:181: error: method does not override or implement a method from a supertype
@Override
^
Main.java:183: error: cannot find symbol
MenuInflater inflater = getMenuInflater();
^
symbol: class MenuInflater
location: class MainActivity
Main.java:183: error: cannot find symbol
MenuInflater inflater = getMenuInflater();
^
symbol: method getMenuInflater()
location: class MainActivity
Main.java:184: error: package R does not exist
inflater.inflate(R.menu.main_menu, menu);
^
Main.java:188: error: method does not override or implement a method from a supertype
@Override
^
Main.java:191: error: package R does not exist
case R.id.sign_out_menu:
^
Main.java:193: error: cannot find symbol
AuthUI.getInstance().signOut(this);
^
symbol: variable AuthUI
location: class MainActivity
Main.java:197: error: cannot find symbol
return super.onOptionsItemSelected(item);
^
symbol: variable super
location: class MainActivity
Main.java:207: error: method does not override or implement a method from a supertype
@Override // Added manually.
^
Main.java:209: error: cannot find symbol
super.onPause();
^
symbol: variable super
location: class MainActivity
Main.java:219: error: method does not override or implement a method from a supertype
@Override // Added manually.
^
Main.java:221: error: cannot find symbol
super.onActivityResult(requestCode, resultCode, data);
^
symbol: variable super
location: class MainActivity
Main.java:224: error: cannot find symbol
if(resultCode == RESULT_OK) {
^
symbol: variable RESULT_OK
location: class MainActivity
Main.java:225: error: cannot find symbol
Toast.makeText(this, "Signed in!", Toast.LENGTH_SHORT).show();
^
symbol: variable Toast
location: class MainActivity
Main.java:225: error: cannot find symbol
Toast.makeText(this, "Signed in!", Toast.LENGTH_SHORT).show();
^
symbol: variable Toast
location: class MainActivity
Main.java:227: error: cannot find symbol
}else if(resultCode == RESULT_CANCELED){
^
symbol: variable RESULT_CANCELED
location: class MainActivity
Main.java:228: error: cannot find symbol
Toast.makeText(this, "Sign in canceled", Toast.LENGTH_SHORT).show();
^
symbol: variable Toast
location: class MainActivity
Main.java:228: error: cannot find symbol
Toast.makeText(this, "Sign in canceled", Toast.LENGTH_SHORT).show();
^
symbol: variable Toast
location: class MainActivity
Main.java:229: error: cannot find symbol
finish();
^
symbol: method finish()
location: class MainActivity
Main.java:232: error: cannot find symbol
Toast.makeText(this, String.valueOf(requestCode), Toast.LENGTH_SHORT).show();
^
symbol: variable Toast
location: class MainActivity
Main.java:232: error: cannot find symbol
Toast.makeText(this, String.valueOf(requestCode), Toast.LENGTH_SHORT).show();
^
symbol: variable Toast
location: class MainActivity
Main.java:235: error: method does not override or implement a method from a supertype
@Override // Added manually.
^
Main.java:237: error: cannot find symbol
super.onResume();
^
symbol: variable super
location: class MainActivity
Main.java:254: error: cannot find symbol
mChildEventListener = new ChildEventListener() {
^
symbol: class ChildEventListener
location: class MainActivity
92 errors
Standard output is empty